引用
梦非它乡 的 CheckForIllegalCrossThreadCalls 多个线程操作某一控件
CheckForIllegalCrossThreadCalls 多个线程操作某一控件
private void Main_Load(object sender, EventArgs e)
{
Control.CheckForIllegalCrossThreadCalls = false;
}
上面程序是用.Net2005写的,在.Net2005中访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。
但是可以通过将 CheckForIllegalCrossThreadCalls 属性的值设置为 false 来禁用此异常。这会使控件以与在 Visual Studio 2003 下相同的方式运行。