快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

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多线程
文章链接:http://6mz.cn/article/ddgopds.html

其他资讯