我正在观看有关C# 5异步的视频,在示例中,他有一个异步方法和一个lambda回调函数。由于lambda回调函数在单独的线程上执行,试图在其中更改UI会导致异常。
为了缓解这个问题,他使用了
我也不太明白它是如何工作的-查看MSDN文档,我实际上看不到Dispatcher(它假定处理所有线程)将如何在UI线程上执行操作- RunAsync方法不指定操作执行的线程。
我考虑过可能调度程序只是在用于创建调度程序的线程上运行事物,但由于上述问题无法在本地尝试,我无能为力。
有人能指导我解决方案吗?
为了缓解这个问题,他使用了
Dispatcher.RunAsync(...)
然而,我对此感到困惑。我创建了一个新的.NET 4.5项目,并尝试找到Dispatcher类,但我无法在任何地方找到它。Google告诉我它在System.Windows.Threading命名空间中,但我的计算机上没有这个dll,只有System.Windows。我也不太明白它是如何工作的-查看MSDN文档,我实际上看不到Dispatcher(它假定处理所有线程)将如何在UI线程上执行操作- RunAsync方法不指定操作执行的线程。
我考虑过可能调度程序只是在用于创建调度程序的线程上运行事物,但由于上述问题无法在本地尝试,我无能为力。
有人能指导我解决方案吗?
System.Windows.Threading
的命名空间,也没有System.Windows.Threading
程序集。 - Martin Liversage