为了账号安全,请及时绑定邮箱和手机立即绑定

Dispatcher.CurrentDispatcher与Application.Current

Dispatcher.CurrentDispatcher与Application.Current

沧海一幻觉 2019-09-21 11:28:09
Dispatcher.CurrentDispatcher(in System.Windows.Threading)和Application.Current.Dispatcher(in System.Windows)之间有什么区别?我的直觉告诉我,它Application.Current.Dispatcher永远不会改变,并且对当前应用程序中的所有线程都是全局的,同时Dispatcher.CurrentDispatcher可能会Dispatcher根据调用它的线程创建一个新实例。那是对的吗?如果是这样,Dispatcher.CurrentDispatcher主要是为了多线程UI 的目的吗?
查看完整描述

3 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

我的直觉告诉我Application.Current.Dispatcher永远不会更改,并且对于当前应用程序中的所有线程都是全局的,而Dispatcher.CurrentDispatcher可能会根据调用它的线程来创建Dispatcher的新实例。

没错,这Application.Current.Dispatcher是应用程序的实例属性,该属性在构造时被分配为当前线程的调度程序。并且作为文档Dispatcher.CurrentDispatcher指出:

获取当前正在执行的线程的Dispatcher,如果尚未与该线程关联,则创建一个新的Dispatcher。


如果是这样,Dispatcher.CurrentDispatcher的目的主要是针对多线程UI吗?

可能地,我在获取后台线程的分派器时没有遇到任何用处,因为您通常没有属于您的UI元素,您可能希望向其分配操作。


查看完整回答
反对 回复 2019-09-21
  • 3 回答
  • 0 关注
  • 1342 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信