将新Dispatcher绑定到WPF中的线程

时间:2014-05-30 15:39:19

标签: c# wpf multithreading dispatcher

我遇到的情况是我显示的Window充当启动画面。这个窗口是在与主ui线程分开的一个线程上创建的,因此它与它自己的Dispatcher相关联(即我最终得到2个Dispatchers主要Ui调度程序和" Splash" { {1}})。

当我关闭启动窗口时,与启动窗口的线程关联的Dispatcher关闭(尽管线程仍在运行,这就是我想要的);但是,我希望以后能够在同一个线程上再次显示启动窗口。我遇到的问题是我第二次尝试这样做Dispatcher抱怨它已被关闭。

有没有办法强制新的Dispatcher与以前与之关联过Dispatcher的帖子相关联?

或者是否有办法在窗口关闭时导致Dispatcher不关闭?

我知道我可以通过创建一个新线程来解决这个问题,但我真的不想这样做。理想情况下,我希望有一个专用线程负责带外通知,如启动和弹出"烤面包机"。

注意: 我已在此要点上发布了相关代码:https://gist.github.com/DamianReeves/76771a031f05a8be042d

1 个答案:

答案 0 :(得分:1)

回答你的第一个问题: 有没有办法强制新的Dispatcher与以前有Dispatcher关联的线程关联?

“在线程上创建Dispatcher时,即使Dispatcher关闭,它也会成为唯一可以与该线程关联的Dispatcher。”

“如果Dispatcher已关闭,则无法重新启动。”

http://msdn.microsoft.com/en-us/library/vstudio/system.windows.threading.dispatcher 在备注部分。