我對如何在多線程應用程序中使用GUI有點困惑。線程,事件和GUI
我聽說有一個叫做UI線程的東西。我認爲這是我在應用程序啓動時的主要執行線程。
我也聽到(雖然我不是100%)在其他(非UI)線程上做UI的東西是一個非常糟糕的主意。
所以,如果我創建一個單獨的線程,並且我想在其中調用MyForm myForm = new MyForm(); myForm.ShowDialog();
,那麼需要做出什麼更改才能使其「安全」?
此外,我有一些人告訴我,事件是在不同的線程上分解出來的。 (雖然我不確定我是否相信這一點。)如果他們是,那麼我很困惑。我可以打開一個對話框(即在事件myForm.ShowDialog()
並沒有什麼真正可怕的情況發生。(也許這取決於如果事件委託被稱爲用Invoke
或BeginInvoke
?)
感謝您的所有偉大的答案!我希望我可以選擇多個作爲「正確」的答案。 – Vaccano 2010-12-02 19:33:13