在WPF中将一个新的Dispatcher绑定到一个线程
本文关键字:一个 Dispatcher 绑定 线程 WPF | 更新日期: 2023-09-27 18:05:52
我有一种情况,我正在显示作为启动屏幕的Window
。这个窗口是在一个与主ui线程分开的线程上创建的,因此它与自己的Dispatcher
相关联(即我最终有2个Dispatchers, main ui dispatcher和"Splash"Dispatcher
)。
当我关闭启动窗口时,与启动窗口的线程相关的Dispatcher
关闭(尽管线程仍在运行,这是我想要的);但是,我希望能够在稍后的时间在同一线程上再次显示启动窗口。我面临的问题是第二次尝试这样做时,Dispatcher
抱怨它已被关闭。
是否有一种方法可以强制新的Dispatcher
与先前有Dispatcher
与之关联的线程相关联?
或者有一种方法可以使Dispatcher
在窗口关闭时不关闭?
我知道我可以通过创建一个新的线程来解决这个问题,但我真的不愿意这样做。理想情况下,我想有一个专门的线程负责带外通知,如飞溅和弹出"toasters"。
注意:我已经在这个要点上发布了相关代码:https://gist.github.com/DamianReeves/76771a031f05a8be042d
回答你的第一个问题:是否有一种方法可以强制新的Dispatcher与先前有Dispatcher关联的线程相关联?
"当在线程上创建Dispatcher时,它成为唯一可以与线程关联的Dispatcher,即使Dispatcher被关闭。"
也"如果Dispatcher被关闭,则无法重新启动。"
http://msdn.microsoft.com/en-us/library/vstudio/system.windows.threading.dispatcher