首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dispatcher和SynchronizationContext类

Dispatcher和SynchronizationContext类
EN

Stack Overflow用户
提问于 2010-06-18 21:01:01
回答 2查看 7.1K关注 0票数 12

谁能告诉我什么时候使用Dispatcher,什么时候使用SynchronizationContext类?

一段时间以来,我一直在使用Dispatcher对来自后台线程的任务进行排队,然后我发现了SynchronizationContext

EN

回答 2

Stack Overflow用户

发布于 2010-06-18 23:38:00

当使用WPF时,SynchronizationContext.Current对象的类型是DispatcherSynchronizationContext,它实际上只是Dispatcher对象的包装器,而PostSend方法只是委托给Dispatcher.BeginInvokeDispatcher.Invoke

因此,即使您决定使用SynchronizationContext,我也认为您最终会在幕后调用dispatcher。

此外,我认为使用SynchronizationContext有点麻烦,因为您必须将对当前上下文的引用传递给所有需要调用您的UI的线程。

票数 17
EN

Stack Overflow用户

发布于 2010-06-19 00:25:28

  1. 在你的代码与WPF紧密耦合时使用Dispatcher,而
  2. 在你需要在“Context”线程上排队时使用AsyncOperationManager。这适用于Windows Forms,ASP .NET和WCF应用程序。
  3. 避免自己使用SynchronizationContext。

在内部使用了这种机制。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3069770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档