在单独的线程中运行的异步任务中的DynamicInvoke?

时间:2013-11-15 14:57:59

标签: c# reflection asynchronous windows-runtime

我有一个泛型方法,它初始化类型为T(WinRT)的对象的同步线程。在这个同步线程中,每当一个对象被同步时我都会调用一个委托处理程序,所以代码看起来像这样:

foreach (var e in updatedEntities)
{
    if (mHandlers.ContainsKey(typeof(T)))
    {
        mHandlers[typeof(T)].DynamicInvoke(e);
    }
}
firstUpdate[typeof(T)] = true;

现在我的应用程序正常工作,我需要等待所有firstUpdate值为true(默认情况下它们被初始化为false)。

我的问题是即使处理程序采用格式化:

public void EntityUpdated(SyncedDatatypes.MyEntityType entity)

DynamicInvoke似乎在一个单独的线程中运行,因为在完成DynamicInvoke后面的委托之前,firstUpdate设置为true。

因为它不是任务也不是异步方法,所以我对这种行为感到困惑。如何确保我的所有处理程序都被调用过一次?即我如何“等待”DynamicInvoke?

0 个答案:

没有答案