我处理这个问题的大概过程,当程序响应DataReceived时:
十年的红河哈尼网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整红河哈尼建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“红河哈尼网站设计”,“红河哈尼网站推广”以来,每个客户项目都认真落实执行。
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
希望能帮的上忙
编译前可以点三角继续运行,编译时可能会提示错误,如果能编译过,它在编译后的程序中不起作用。
用time控件啊,获取threadstate后,按指定时间间隔规定向界面刷新,线程必须是全局变量
用一个有退出条件的无限循环的sub也行。
线程开始就触发该过程,用无限循环来刷新状态,线程完成即退出无限循环。局部变量的线程也可以用这种方式。
不过用法要正确,否则会出问题。
//一部分指令……
int duration = 1000; //设定进程挂起时间,单位毫秒
System.Threading.Thread.Sleep(duration); 挂起当前进程
//另一部分指令……
如果你用控制台应用程序,这样就可以了。如果你用窗体应用程序且在窗体主线程下运行,则需要用到计时器或多线程等。
网站标题:vb.net挂起的简单介绍
当前链接:https://www.cdcxhl.com/article40/hgoiho.html
成都网站建设公司_创新互联,为您提供微信小程序、营销型网站建设、小程序开发、面包屑导航、网页设计公司、微信公众号
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联