关于Timer中加了一些Sleep的问题,请大家给出一些思路
vb.net吧
全部回复
仅看楼主
level 1
qsd717 楼主
在timer事件里加了sleep,程序会假死,有什么好的方法代替sleep延时吗?
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
m1_RS232.DiscardInBuffer()
m1_RS232.Write("%01#RCSR5258**" & vbCrLf)
Thread.Sleep(50)
If m1_RS232.BytesToRead > 0 Then
mToolAcqFifo1.Run()
m1_RS232.DiscardInBuffer()
th_save = New Thread(New ThreadStart(AddressOf SaveData))
th_save.Start()
Thread.Sleep(100)
Else
m1_RS232.DiscardInBuffer()
End If
End Sub
2018年06月09日 07点06分 1
level 9
开个新线程,让新线程去假死。
2018年06月09日 16点06分 2
level 1
我不知道你这 TIMER 多长,线程内写的啥
实在不行你在 TIMER 里和各个 线程内放个 Application.DoEvents() 试试
Application.DoEvents() 在大量循环或者死循环里是必须放的
2018年09月15日 15点09分 3
level 2
用多线程定时类,不要用控件,
2018年09月18日 15点09分 4
level 5
多线程.线程如果访问控件则用委托调用
2018年09月24日 15点09分 5
1