理解C#中的Dispatcher

时间:2013-04-19 11:06:04

标签: c#

我正在观看异步C#5上的视频,在该示例中,他有一个异步方法和一个lambda回调函数。由于lambda回调函数在单独的线程上执行,因此尝试更改其中的UI会导致异常。

为了缓解这种情况,他使用了Dispatcher.RunAsync(...)

然而我对此感到困惑。我创建了一个新的.NET 4.5项目并试图找到Dispatcher类,但我无法在任何地方找到它。 Google告诉我它在System.Windows.Threading命名空间中,但我的计算机上没有这个dll,只有System.Windows

我也不太了解它是如何工作的 - 看看MSDN文档我无法真正看到Dispatcher(可能处理所有线程)将如何在UI线程上执行操作 - RunAsync方法不会指定操作执行的线程。

我认为调度员可能只是在用于创建调度程序的线程上运行,但由于上述问题我无法在本地尝试,我感到很茫然。

有人可以指导我解决方案吗?

1 个答案:

答案 0 :(得分:3)

您提到的video是关于使用Windows运行时和.NET Framework 4.5开发Windows应用商店应用,他使用CoreDispatcher的RunAsync方法,它是新Windows API的一部分,在命名空间Windows.UI.Core。

停止00:20:21并查看IntelliSense