CheckForIllegalCrossThreadCalls 多個線程操作某一控件
private void Main_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
}
上面程序是用.Net2005寫的,在.Net2005中訪問 Windows 窗體控件本質上不是線程安全的。如果有兩個或多個線程操作某一控件的狀態,則可能會迫使該控件進入一種不一致的狀態。還可能出現其他與線程相關的 bug,包括爭用情況和死鎖。確保以線程安全方式訪問控件非常重要。
但是可以通過將 CheckForIllegalCrossThreadCalls 屬性的值設置為 false 來禁用此異常。這會使控件以與在 Visual Studio 2003 下相同的方式運行。