3

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

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

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

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

我认为也许调度程序只是在用于创建调度程序的线程上运行东西,但是由于上述问题我无法在本地尝试这个,我很茫然。

谁能指导我解决问题?

4

1 回答 1

3

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

00:20:21 停下来看看 IntelliSense

于 2013-04-19T11:21:01.717 回答