Dispatcher.CurrentDispatcher(in System.Windows.Threading)和Application.Current.Dispatcher(in System.Windows)之间有什么区别?我的直觉告诉我,它Application.Current.Dispatcher永远不会改变,并且对当前应用程序中的所有线程都是全局的,同时Dispatcher.CurrentDispatcher可能会Dispatcher根据调用它的线程创建一个新实例。那是对的吗?如果是这样,Dispatcher.CurrentDispatcher主要是为了多线程UI 的目的吗?
3 回答
![?](http://img1.sycdn.imooc.com/533e4c0500010c7602000200-100-100.jpg)
凤凰求蛊
TA贡献1825条经验 获得超4个赞
我的直觉告诉我Application.Current.Dispatcher永远不会更改,并且对于当前应用程序中的所有线程都是全局的,而Dispatcher.CurrentDispatcher可能会根据调用它的线程来创建Dispatcher的新实例。
没错,这Application.Current.Dispatcher
是应用程序的实例属性,该属性在构造时被分配为当前线程的调度程序。并且作为文档Dispatcher.CurrentDispatcher
指出:
获取当前正在执行的线程的Dispatcher,如果尚未与该线程关联,则创建一个新的Dispatcher。
如果是这样,Dispatcher.CurrentDispatcher的目的主要是针对多线程UI吗?
可能地,我在获取后台线程的分派器时没有遇到任何用处,因为您通常没有属于您的UI元素,您可能希望向其分配操作。
- 3 回答
- 0 关注
- 1342 浏览
添加回答
举报
0/150
提交
取消