假设您在 UI 线程上异步调用方法。
和
UIDispatcher.BeginInvoke( new Action(_insert), DispatcherPriority.Normal, new object[] { } )
你正在调用。从现在开始,运行时环境决定何时执行该方法,而程序继续其“正常”执行路径。
我现在想知道是否有任何机制可以在这些异步执行的方法返回时同步它们?似乎存在与使用多线程时几乎相同的问题。
但是在被认为是线程之前已经异步调用的返回方法吗?似乎并非如此,因为通常的同步工作像
lock (someObject) { //... }
或使用专用锁似乎不起作用。
附录:
我出现这个问题的实际情况如下:
异步调用的方法调用return
静态类的方法作为其最后一条语句。在此return
方法中,必须同步常用资源(列表)。考虑以下(类似概述的)代码片段来举例说明:
// 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 !
}
}