关于线程对窗体控件的引用错误
用Visual Studio 2005写了个很简单的程序,主要是在主窗体外创建了一个线程,让它专门刷新进度条。曾经在Visual Studio 2003里写过这个程序并且可以正常运行的,2005里却出现了异常。“线程间操作无效:不是从创建它的线程里访问。”
哦,后来才发现这是2005的新特点。
哦,后来才发现这是2005的新特点。
解决方案:
1、可以通过将 CheckForIllegalCrossThreadCalls 属性的值设置为 false 来禁用此异常。这会使控件以与在 Visual Studio 2003 下相同的方式运行。
2、解决方法:使用窗体从Control继承而来的Control.Invoke(Delegate)方法。该方法将在创建窗体的线程上执行委托指向的方法。
? 注意:在VS2003下,可以在一个线程中直接或间接调用另一个线程中的窗体的方法,而不会导致运行时错误。
? 注意:在VS2003下,可以在一个线程中直接或间接调用另一个线程中的窗体的方法,而不会导致运行时错误。
详情参看“”Windows窗体控件进行线程安全调用
本文介绍了在VisualStudio2005中遇到的线程间更新UI控件时出现的异常问题,并提供了两种解决方法:一是禁用异常检查,二是使用Control.Invoke方法正确地在UI线程中更新控件。
1万+

被折叠的 条评论
为什么被折叠?



