2014-04-17 98 views
0

我有一個使用單獨線程的WPF應用程序和一個登錄窗口。在我的主線程中,應用程序正在加載(PRISM模塊等),並將進度報告給我的登錄窗口。一次調用過程調度程序隊列/後臺線程

當Bootstrapper完成後,Login View將關閉,並顯示Application MainWindow。

確保每個後臺工作或Dispatcher活動完成我想在顯示MainWindow之前調用方法。

有沒有任何方法來處理所有待處理的後臺任務/ Dispatcher隊列項目?

+0

你可以使用ManualResetEvent嗎? –

+1

您可能會將一個處理程序附加到[Dispatcher.Hooks](http)的[DispatcherInactive](http://msdn.microsoft.com/zh-cn/library/system.windows.threading.dispatcherhooks.dispatcherinactive.aspx)事件://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcher.hooks.aspx)。 – Clemens

回答

1

您可以檢查調度程序是否空閒以確保不存在任何操作。

要做到這一點,你可以使用Dispatcher.CurrentDispatcher.Hooks

在這之後,你可以添加一個事件處理程序掛接到調度hooks.DispatcherInactive + = DispatcherInactiveHandler

這應該告訴你,如果調度程序目前是空的。