重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

vb.net多线程会慢,多线程比单线程慢

VB.NET用子线程进行大批量数据传输,UI卡死,请高手指教。代码如下

试试这个怎么样,添加在子进程里面,就加在你批量传输代码里的每一个传输后面,也就是大批量中的每传输一个数据就暂停一下,而不是每一个大批量才暂停一下

成都创新互联专业为企业提供四川网站建设、四川做网站、四川网站设计、四川网站制作等企业网站建设、网页设计与制作、四川企业网站模板建站服务,十年四川做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

System.Threading.Thread.Sleep(10) '让它走慢一点

怎么在vb.net里用多线程缩短循环时间

多线程并不一定就可以缩短时间,具体要看你上面的“过程”是否调用数据库完成。如果调用了数据库,可以考虑用存储过程替代“过程”。另外看看“过程”里是否反复打开和关闭了数据库连接,如果是,这才是真正的耗时动作。如果没调用数据库,可以考虑使用Parallel类(.net4以后)里面的函数,使多个任务在多核CPU上并行运行,缩短时间。

vb.net的多线程问题为什么两个线程同时开始,导致每次输出结果不同

你真心无聊。

多线程就是这样的。界面线程是主线程,你这个Form_Load就是运行在主线程上的线程,而Thread1,Thread2是由主线程启动的。这个启动不是线性的。

主线程只是通知系统,请启动一个线程运行某某函数。

而哪个线程先运行完全在系统决定。甚至可能主线程执行到Thread1.Abort() ,Thread2.Abort()的时候这两个线程都还没有启动起来,所以你会遇到两个变量都是空值这种情况。

Vb.net,多线程,新线程启动后,界面响应变慢,但可以相应,怎么解决?

以下是在多线程中显示进度条代码

'定义一个委托

Delegate Sub dl_ShowProgress(ByVal iValue As Integer)

Public Sub ShowProgress(ByVal iValue As Integer)

If ProgressBar1.IsDisposed Then

Return

End If

If ProgressBar1.InvokeRequired = True Then

Dim pInvoke As New dl_ShowProgress(AddressOf ShowProgress)

Me.Invoke(pInvoke, New Object() {iValue})

Else

ProgressBar1.Value = iValue

ProgressBar1.Refresh()

End If

End Sub

'在多线程中调用ShowProgress(*)函数

VB.NET 多线程运行问题

多线程是用于处理复杂项目的

打个比方

你的主程序线程A中有个循环,由于代码是一行行走的,所以循环结束前下面的代码无法运行,而此时主界面的反应就类似卡死的样子,你点击按钮也没有反应,因为主线程在忙着循环呢,所以对按钮的事件代码要等待了,如果要避免这种情况,就要用到多线程,另开一个新线程专门用来执行循环代码,主界面就不会卡死了,只要在循环结束后将结果传回主线程调用就可以了,再复杂点要涉及到委托,控制了

按你的要求其实你的代码用不到多线程,只要把sleep放到两段代码中间就可以了。

新线程结束用thread.abort()

vb.net 动态添加大量控件严重卡顿怎么办

这是不可避免的,除非更换电脑硬件,让处理器及内存处理得更快,或是不要用自带的 Panel 和 Label 控件,自定义一个容器,内容自绘。

卡顿主要原因:

1、控件多了,电脑必然会慢,因为在 Windows 里每个控件都相当于一个窗口,有自己的句柄,系统需要维护对应的窗口消息,那么一定会卡顿,只能缓解不能消除。

2、可以用多线程,在子线程中更新控件,通过委托的方式通知主线程,可以有效缓解卡顿的问题。


当前文章:vb.net多线程会慢,多线程比单线程慢
转载源于:http://cqcxhl.com/article/phpjee.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP