首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

使用多线程时主线程也会出现卡死现象解决办法

2012-03-18 
使用多线程时主线程也会出现卡死现象看到网上有好多软件更新时都是使用多线程以保证主界面不卡死,即时网速

使用多线程时主线程也会出现卡死现象
看到网上有好多软件更新时都是使用多线程以保证主界面不卡死,即时网速慢也不会卡死.
但我的程序就会卡死,代码太长就不全帖了,用的是委托
线程里一般情况下都是到连接服务器那里卡住一会,我特意用联通网做服务器用电信做客户端测试过的,会卡很久.主线程卡死,然后连接成功后开始接收数据时就会一直卡死...只要是接收过程就会使主线程卡死 郁闷死我了

线程内就这几句代码,Srvc.DownFile是一个下载文件的类,如果网速快的话一点也不会卡,网一慢主界面就不动了...

VB.NET code
 If Me.InvokeRequired Then                    Dim s As New ggift(AddressOf GetGift)                    Me.Invoke(s)                Else                    If Srvc.DownFile(Tsender, Fname, ProgressBar1) = False Then                        Return                    End If                End If


[解决办法]
用: Me.BeginInvoke(s)
[解决办法]
用Invoke貌似和直接用主线程没区别,当前控制权只有一个线程有。你用Invoke,主线程把控制权给了其他线程就会一直等待线程把控制权还回来。
[解决办法]
Srvc.DownFile是一个下载文件的类, 有没有异步下载的功能啊。用一个线程去控制 异步下载就不会了。主线程肯定不会卡。

热点排行