求教Timer控件如何不被其他窗体的代码所影响

zhenlisuozai 2010-12-02 10:39:33
3个窗体a,b,c:
窗体b的功能是:利用Timer控件使进度条一直循环走
窗体c的功能是:load事件里根据IP地址连接网络上的一个设备,连接需要一段时间,没有该IP时要很久才能返回值。
窗体a的功能是:显示窗体C;但是由于窗体C由于网络等问题会卡很久才有反应,所以想先显示窗体b隐藏窗体c,等到窗体c返回连接是否成功之后再关闭窗体b显示窗体c。
现在的问题是:当窗体c再连接设备时还是会卡住,窗体b的进度条没动了(应该是timer控件Tick事件没执行)直到窗体c连接完成返回值之后窗体b的Timer1_Tick才会继续执行。窗体c连接设备的方法用线程,窗体b的Timer用Threading.Timer依然是这样。
问题:如何才能让窗体b的进度条一直走而不受窗体c的影响呢?
望各位大侠解答下!
...全文
196 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhenlisuozai 2010-12-07
  • 打赏
  • 举报
回复
vb.net还能这么写?
我是不是这么写的
caoqinghua 2010-12-02
  • 打赏
  • 举报
回复
弄个线程来控制timer。这样就不会假死了
zhenlisuozai 2010-12-02
  • 打赏
  • 举报
回复
由于窗体c的连接造成了整个软件的未响应,所以窗体b的进度条才会没动
能不能将窗体c的未响应控制在那一个窗体呢?
QQRN 2010-12-02
  • 打赏
  • 举报
回复
.NET中的三种Timer的区别和用
http://space.itpub.net/12639172/viewspace-571197

建议直接用GIF动画图片..........
Yangbin990 2010-12-02
  • 打赏
  • 举报
回复
你的窗体c是被窗体b加载的吧

窗体b加载窗体c的这段代码应该在backgroundworker 里面,或者自己写thread.

比如
WindowC
Form_load
Dim t As New Thread(AddressOf StartWindowB)
t.Start()
End Formload
Public Sub StartWindowB()
New WindowB().Show()
End Sub
End WindowC

“线程几个窗体都试过,几种情况都试过都一样”你没写队
zhenlisuozai 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 caoqinghua 的回复:]
弄个线程来控制timer。这样就不会假死了
[/Quote]
加过
线程几个窗体都试过,几种情况都试过都一样

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧