我正在观看有关异步 C# 5 的视频,在示例中他有一个异步方法和一个 lambda 回调函数。由于 lambda 回调函数在单独的线程上执行,因此尝试更改其中的 UI 会导致异常。
为了缓解这种情况,他使用Dispatcher.RunAsync(...)
但是我对此感到困惑。我创建了一个新的 .NET 4.5 项目并试图找到 Dispatcher 类,但我无法在任何地方找到它。谷歌告诉我它在 System.Windows.Threading 命名空间中,但我的电脑上没有这个 dll,只有 System.Windows
我也不太明白它是如何工作的 - 查看 MSDN 文档,我无法真正看到 Dispatcher(可能处理所有线程)将如何在 UI 线程上执行操作 - RunAsync 方法没有指定线程该操作执行。
我认为也许调度程序只是在用于创建调度程序的线程上运行东西,但是由于上述问题我无法在本地尝试这个,我很茫然。
谁能指导我解决问题?