导航

这是我在学习Lucene时,运行别人的Code时出现的一个问题,查阅MSDN后才知道原来是以线程不安全方式访问Windows窗体控件造成的,将CheckForIllegalCrossThreadCalls属性设置为false来禁用此异常,不过这会使控件以与在Visual Studio 2003下相同的方式运行。

MSDN上的解释是:访问Windows窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态,还可能出现其他与线程相关的Bug,包括争用和死锁。