我必須在另一個線程中顯示進度窗口。 這是我做了什麼:在新線程中加載窗口
Thread loadT = new Thread(new ThreadStart(() =>
{
Loading ldd = new Loading();
ldd.SetContentMessage("Loading...");
ldd.Closed += (s, ec) =>
Dispatcher.CurrentDispatcher.BeginInvokeShutdown(DispatcherPriority.Background);
ldd.ShowDialog();
}));
loadT.SetApartmentState(ApartmentState.STA);
loadT.Start();
//do something
loadT.Abort();
但我不認爲這是正確的方式。我想用這個窗口進行不同的處理,我也想把窗口設置在其他的窗口上。哪種方法最好? Ty! Ty!
不要在除主/ UI線程以外的任何線程上做UI東西。這是一條基本規則。相反,通過在工作線程上正確調用UI線程上的更新代碼來更新進度指示器。 –
切換你的計劃。將工作推送到另一個線程,並在主線程上啓動/顯示/控制加載窗口。 – Skintkingle
不幸的是我必須在主線程中執行這個操作。我找到了這篇文章(https://strukachev.wordpress.com/2011/01/09/wpf-progress-window-in-separate-thread/),這是一個好方法嗎? –