资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

vb点虐 线程挂起 vbnet timer多线程

求大神指导VB点虐 线程 ThreadState 的使用方法 怎么获取线程状态,是否被挂起堵塞停止等等

用time控件啊,获取threadstate后,按指定时间间隔规定向界面刷新,线程必须是全局变量

创新互联建站-专业网站定制、快速模板网站建设、高性价比定结网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式定结网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖定结地区。费用合理售后完善,十载实体公司更值得信赖。

用一个有退出条件的无限循环的sub也行。

线程开始就触发该过程,用无限循环来刷新状态,线程完成即退出无限循环。局部变量的线程也可以用这种方式。

不过用法要正确,否则会出问题。

vb点虐 串口关闭时挂起

我处理这个问题的大概过程,当程序响应DataReceived时:

Private Sub MyCOMM_DataReceived(ByVal sender As Object, ByVal e As 

System.IO.Ports.SerialDataReceivedEventArgs) Handles MyCOMM.DataReceived

If IsClosing Then Exit Sub '如果界面正在关闭串口则退出过程

Try

IsListenning = True'设置正在读取标记,供界面操作判断

Wait(150)'等待150毫秒

Dim n As Long = MyCOMM.BytesToRead

Dim buf(n - 1) As Byte

Try

MyCOMM.Read(buf, 0, n)

Catch ex As Exception

MsgBox("接收短信出错", "COMPort.DataReceived")

Throw New System.Exception(ex.Message)

Finally

IsListenning = False'无论接收数据成功与否,都关闭正在读取标记

End Try

MyCOMM.Close()

MyCOMM.Open()

'Do SomeThing

Catch ex As Exception

MyCOMM.Close()

MyCOMM.Open()

End Try

End Sub

Protected Sub Wait(ByVal miliseconds As Integer)

Dim tmpNow As Date = Now

While Now.Subtract(tmpNow).Milliseconds  miliseconds

Application.DoEvents()

End While

End Sub

希望能帮的上忙

VB点虐 多线程编程问题

你可以在timer前用if判断网络状态,

如断开,可用

threading.Thread.Sleep(10000) ‘当前线程挂起10秒

’可以开一个新线程去读取脱机数据。

如连接,则继续执行。

补充:

dim i as integer

'超过100次退出,避免死循环

for i=0 to 100

try

'ping你的端口

if ‘ok

exit for

else

threading.Thread.Sleep(10000) ‘当前线程挂起10秒

end

Catch ex As Exception

End Try

next

VB点虐 多线程,导致无法响应

t.Suspend() 这个是挂起线程。是一个异步方法。

t.Sleep 我看了是一个同步方法。要等这个方法运行完了才继续下一步。

这和from.show和 from.showdiaglog区别差不多!

至于疑问2我也没找到原因。


文章标题:vb点虐 线程挂起 vbnet timer多线程
URL网址:http://cdkjz.cn/article/ddgopds.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220