我創建了Windows窗體和按鈕。在另一個線程中,我嘗試更改按鈕的文本,並崩潰;但如果我試圖改變按鈕的顏色,它可靠地成功。我認爲,如果您更改了任何Windows窗體控件屬性,它會崩潰。有人能告訴我發生了什麼事嗎?
這裏是我的代碼,不會對註釋掉線崩潰(但我認爲它應該):
Thread thr = new Thread(() => {
//myButton.ForeColor = Color.Purple; // this never causes a crash :=(
myButton.Text = Color.Purple.ToString(); // this always causes a crash.
}); //
thr.Start();
任何見解將不勝感激!
邁克爾
感謝您的澄清。爲了記錄,微軟的文檔不允許有任何歧義,只是指出:「當您在調試器中運行應用程序時,如果創建控件的線程嘗試調用該控件,那麼調試器將引發InvalidOperationException 」。我希望他們已經提供了一點細節...... –
如果文檔是完美的,那麼不需要像StackOverflow這樣的網站:)它的準確率爲98%。 –
對於學術興趣,您是從煤礦個人經驗中發現的這些例子,還是您自己研究過它們(如果是,如何),還是實際記錄在某處? – tomfanning