在windows窗体应用开发过程中,为提高性能,会使用到多线程。

如果直接在线程中设置Textbox的Text属性等操作,程序就会抛出了如下问题:

未处理InvalidOperationException

"System.InvalidOperationException"类型的未处理异常在System.Windows.Forms.dll中发生

其他信息:线程间操作无效:从不是创建控件"xxxx"的线程访问它。

一个比较简单的解决方案如下:

将 CheckForIllegalCrossThreadCalls 属性的值设置为 false

访问Windows窗体控件本质上不是线程安全的。如果有多个线程同事操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他线程相关的BUG,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。

可以通过以委托的方式调用来处理线程安全的问题,详情可以移步MSDN官方文档:如何对 Windows 窗体控件进行线程安全调用

标签: none

添加新评论