关于vb.net委托后假死的信息

VBnet 我的多线程测试为什么窗口假死了?

原因很简单

创新互联建站是一家专业提供云溪企业网站建设,专注与成都网站制作、网站设计、H5高端网站建设、小程序制作等业务。10年已为云溪众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

你是定义了一个T的新线程,但是很可惜你在BeginDoSub这个独立的线程中又定义了一个deSomeSub的委托,并且直接用Me.Invoke把实际的执行任务提交给界面主线程运行了

所以你的图片的处理函数实际上是在主线程中运行的,新线程等于没用

正确的作法是,T定义为SomeSub这个函数为入口的线程,并启动它

在界面进度条更改的时候再使用Invoke来调用委托来进行界面更改。

关于VB.NET中多线程和委托界面假死无响应的问题

Sub bc()

Dim cs As New qq163(AddressOf js)

Application.DoEvnts

Invoke(cs)

End Sub

vb.net 线程托管 窗口假死

Me.Invoke(d, i)

问题出在这里!

直接用Me.Invoke把实际的执行任务提交给主线程运行

所以你的处理函数实际上是在主线程中运行的,新线程等于没用

正确的作法是,定义一个函数为入口的线程,并启动它

在需要调用的时候再使用Invoke来调用委托来进行更改。

----------------------------------------------------------------

方法已经给你说明白了,新建1个线程和2个线程来操作有什么不通用的哪??

问题不是线程个数的问题,是你线程中的函数一直在调用settext和settext1两个函数,而这两个函数都是处于method 方法 的while的循环中,相当于不间歇的在使用 Me.Invoke(d, i)这个方法。

----------------------------------------------------------------

如果你要不停地通过另外一个线程修改richtextbox内的内容,那也可以新启动一个线程,由这个线程的入口方法创建一个richtextbox ,再由这个线程来对这个richtextbox 进行操作。当然,你也可以用不安全的线程间的操作方法来实现。


名称栏目:关于vb.net委托后假死的信息
标题URL:http://hbruida.cn/article/dogcdoo.html