WPF调度程序线程

时间:2012-11-05 11:20:10

标签: wpf dispatcher

我有一个WPF应用程序,它在启动时在一个单独的线程上进入命名管道服务器 在某个时间点,命名管道客户端将信息发送到此线程,而该线程又需要更新ViewModel中的Observable Collection。 试图直接这样做会导致异常“无法在非调度程序线程上访问此时的集合”(我稍微解释了错误)。
无论如何,如何将命名管道线程的处理程序放到UI线程上。我似乎没有一个可以用来调用方法的调度程序对象。我应该在启动时缓存到静态或单例或其他类似的东西 DispatcherSynchronizationContext看起来很有趣,但不知道如何在我的视图中获取并存储在我的View模型中。

1 个答案:

答案 0 :(得分:0)

您始终可以通过

访问Current应用程序实例的Dispatcher
var dispatcher = Application.Current.Dispatcher;

只要您有了这个,就可以在InvokeBeginInvoke上对UI线程执行操作。