VB.NET程序界面假死如何解决

我的程序需要做访问网络的耗时操作,运行时出现界面假死的现象,使用了多线程之后还是如此,请问如何解决这个问题?使用多线程时是通过委托Invoke访问界面的控件,一边获取网络... 我的程序需要做访问网络的耗时操作,运行时出现界面假死的现象,使用了多线程之后还是如此,请问如何解决这个问题?使用多线程时是通过委托Invoke访问界面的控件,一边获取网络数据,一边更新界面内容。请问如果多线程运行时不访问界面控件是不是就不会出现界面假死的现象?

Code开始////////////////////////////////////////

’建立托管
Delegate Sub Tuo()

’托管(Th为待托管事件)
Private Sub TuoCenter()
Me.Invoke(New Tuo(AddressOf Th))
End Sub

‘建立线程
Dim thread1 As Thread = New System.Threading.Thread(AddressOf TuoCenter)
’启动线程
thread1.Start()
[Code]结束////////////////////////////////////////

我想到一种方法:把控件数据读取到变量,这样在多线程运行时,线程就不用访问控件,然后获取网络数据到变量,结束线程时再把数据显示到界面,不知道可不可行?有没有更好的方法解决界面假死问题?
展开
 我来答
tystq
2013-07-06 · TA获得超过1201个赞
知道小有建树答主
回答量:943
采纳率:100%
帮助的人:832万
展开全部
在Th过程中加入 Threading.Thread.Sleep(1)可以解决假死
追问
不行。我这个是耗时操作,使用睡眠也得等访问网络数据结束后才能Sleep,根本没有用。
追答
今天看到篇文章,估计对你有用
“在vb.net中运用多线程实现远程数据收集”
链接:http://www.bianceng.cn/Programming/VB_NET/201001/14675.htm
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dsk_cy
2013-07-08 · 超过23用户采纳过TA的回答
知道答主
回答量:72
采纳率:100%
帮助的人:56.5万
展开全部
Application.DoEvents()
追问
这个刷新操作在耗时程序执行完之后才会执行,不能解决问题。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式