首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同步异步调用的方法?

同步异步调用的方法?
EN

Stack Overflow用户
提问于 2012-07-09 14:14:40
回答 1查看 245关注 0票数 1

假设您正在异步调用UI线程上的方法。

使用

代码语言:javascript
复制
UIDispatcher.BeginInvoke( new Action(_insert), DispatcherPriority.Normal, new object[] { } )

您正在执行调用。从现在起,运行时环境决定何时执行该方法,而程序则继续其“正常”的执行路径。

我现在想知道在这些方法返回时是否有任何机制来同步这些异步执行的方法?似乎在使用多个线程时存在着几乎相同的问题。

但是,在被视为线程之前已经异步调用的返回方法是否被视为线程?似乎不是这样,因为通常的同步工作就像

代码语言:javascript
复制
lock (someObject) { //... }

或者使用专用锁似乎不起作用。

附录:

我提出这个问题的实际情况如下:

异步调用的方法作为其最后一条语句调用静态类的return方法。在这个return方法中,必须同步一个常用的资源(列表)。考虑以下(类似概述的)代码片段,以举例说明:

代码语言:javascript
复制
// A simple method that gets invoked asynchronously
public void _insert () {

    // do some code

    StaticClass.Returned();
}


public static StaticClass {

   //...

   public static void Returned () {

        // use a shared resource !
   }

}
EN

回答 1

Stack Overflow用户

发布于 2012-07-09 15:19:07

要么使用.NET的异步模式BackgroundWorker,要么使用ManualResetEvent

http://msdn.microsoft.com/en-us/library/ms228969.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11396827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档