我正在观看有关异步 C# 5 的视频,在示例中他有一个异步方法和一个 lambda 回调函数。由于 lambda 回调函数在单独的线程上执行,因此尝试更改其中的 UI 会导致异常。
为了缓解这种情况,他使用 Dispatcher.RunAsync(...)
但是我对此感到困惑。我创建了一个新的 .NET 4.5 项目并试图找到 Dispatcher 类,但我无法在任何地方找到它。 Google 告诉我它在 System.Windows.Threading 命名空间中,但我的计算机上没有这个 dll,只有 System.Windows
我也不太明白它是如何工作的——查看 MSDN 文档我真的看不出 Dispatcher(大概处理所有线程)将如何在 UI 线程上做事——RunAsync 方法不会指定执行操作的线程。
我考虑过也许调度程序只是在用于创建调度程序的线程上运行一些东西,但是由于上述问题我无法在本地尝试这个,我不知所措。
谁能告诉我解决方案?
最佳答案
video您提到的是关于使用 Windows 运行时和 .NET Framework 4.5 开发 Windows 应用商店应用程序,他使用 RunAsync CoreDispatcher 的方法,它是新 Windows API 的一部分,位于命名空间 Windows.UI.Core 中。
在 00:20:21 停止并查看 IntelliSense
关于c# - 了解 C# 中的调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16103178/