vb.net 线程托管 窗口假死Me.Invoke(d, i)
问题出在这里!
直接用Me.Invoke把实际的执行任务提交给主线程运行
所以你的处理函数实际上是在主线程中运行的,新线程等于没用
正确的作法是 , 定义一个函数为入口的线程,并启动它
在需要调用的时候再使用Invoke来调用委托来进行更改 。
----------------------------------------------------------------
方法已经给你说明白了,新建1个线程和2个线程来操作有什么不通用的哪??
问题不是线程个数的问题,是你线程中的函数一直在调用settext和settext1两个函数,而这两个函数都是处于method 方法 的while的循环中,相当于不间歇的在使用 Me.Invoke(d, i)这个方法 。
----------------------------------------------------------------
如果你要不停地通过另外一个线程修改richtextbox内的内容,那也可以新启动一个线程,由这个线程的入口方法创建一个richtextbox , 再由这个线程来对这个richtextbox 进行操作 。当然 , 你也可以用不安全的线程间的操作方法来实现 。
vb.net 多线程 窗体 假死并没有看出什么地方可能导致程序假死,这排版也太乱vb.net循环假死了.不妨调试一下程序,当出现vb.net循环假死你说vb.net循环假死的"假死"后暂停一下程序,看看线程都卡在哪里.
另外,从设计上来看,你这里并不需要多线程操作.
vb.net多线程,循环导致窗口界面假死的问题同学 。。你这里的写法其实根本没有用到多线程
原因很简单
你是定义了一个T的新线程,但是很可惜你在BeginDoSub这个独立的线程中又定义了一个deSomeSub的委托,并且直接用Me.Invoke把实际的执行任务提交给界面主线程运行了
所以你的图片的处理函数实际上是在主线程中运行的,新线程等于没用
正确的作法是 , T定义为SomeSub这个函数为入口的线程,并启动它
在界面进度条更改的时候再使用Invoke来调用委托来进行界面更改 。
自己再好好看看吧,时间问题我要走了 。
vb.net读取数据库时假死不显示进度条vb.net循环假死你问的是vb.net读取数据库时假死不显示进度条怎么办吧vb.net循环假死,在循环代码中加一句DoEvents语句 。
【关于vb.net循环假死的信息】根据微软公司的资料得知vb.net循环假死,这是一种bug,只要在循环代码中加一句DoEvents语句即可 。
VB.Net是一种简单,现代,面向对象的计算机编程语言,由微软开发 。
关于vb.net循环假死和的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- oracle常用函数详解详细,oracle的函数怎么写
- 怎么与小程序展开合作的,怎么与小程序展开合作的软件
- asp.net登录不跳转页面,aspnetcore登录方案
- netframework哪里安装,netframework45怎么安装
- ajax修改数据php ajax修改功能
- 电话线怎么接路由器上面的,电话线怎么接路由器上面的网线
- 水星直播为什么没人管,水星直播是什么
- 怎么把当贝桌面下载到电视,怎么把当贝市场下载到电视上
- c语言cal函数意思 c语言中cal