VB   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Crossthread操作无效… – VB.NET大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用vb.net,在我的程序中,当我运行我的后台工作程序时,我会得到这个’crossthread操作无效’的错误,这将使此文本框启用为真.我的主子将首先将启用为false,当后台工作程序运行时,它会将其重新设置为true,然后退出.为什么会给我一个错误? FYI:有更多的代码,但我不想让它更混乱…

这是堆栈跟踪:

at System.Windows.Forms.Control.get_Handle()
   at System.Windows.Forms.Control.onEnabledChanged(EventArgs E)
   at System.Windows.Forms.Control.set_Enabled(Boolean value)
   at Helium.Form1.BACkgroundWorker1_DoWork(Object sender,DoWorkEventArgs E) in C:\Users\Kevin\documents\visual studio 2010\Projects\Helium\Helium\Form1.vb:line 167
   at System.ComponentModel.BACkgroundWorker.onDoWork(DoWorkEventArgs E)
   at System.ComponentModel.BACkgroundWorker.WorkerThreadStart(Object argument)

这里是确切的错误信息:

{"Cross-thread operation not valid: Control 'maintext' accessed from a thread other than the thread it was created on."}

有人可以帮我出来!

谢谢,

凯文

BACkgroundWorker类的目的是在GUI保持响应时对非GUI线程执行工作.除非您将Control.checkForIllegalCrossThreadCalls设置为false(您不应该执行此操作),或者使用其他答案(我也不推荐)中的建议使用Invoke,那么您将获得非法的跨线程操作异常.

如果您希望在BACkgroundWorker运行时发生GUI相关的“东西”,我通常建议使用BACkgroundWorker.ReportProgress方法,并将适当的处理程序附加到BACkgroundWorker.ProgressChanged事件.如果您希望在BACkgroundWorker完成后发生一些事情,那么请简单地将您的处理程序附加到BACkgroundWorker.RunWorkerCompleted事件中.

大佬总结

以上是大佬教程为你收集整理的Crossthread操作无效… – VB.NET全部内容,希望文章能够帮你解决Crossthread操作无效… – VB.NET所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。