看來,C#有時會爲跨線程操作拋出異常。例如,您可以嘗試在Windows窗體程序中運行此示例代碼:當我允許跨線程訪問和什麼時候我不是?
public Form1()
{
InitializeComponent();
Thread setTextT = new Thread(TextSetter);
setTextT.Start();
}
private void TextSetter()
{
//Thread.Sleep(4000);
textBox1.Text = "Hello World";
}
它不會拋出任何異常,一切似乎都正常工作。現在,當您取消註釋Thread.Sleep行時,它會爲嘗試的跨線程訪問引發異常。
爲什麼會出現這種情況?
有時,它不會對你吹起來。雖然你不應該這樣做。 –