重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我处理这个问题的大概过程,当程序响应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); 挂起当前进程
//另一部分指令……
如果你用控制台应用程序,这样就可以了。如果你用窗体应用程序且在窗体主线程下运行,则需要用到计时器或多线程等。