我在vb.net中需要在For回圈中使用一個時鐘,但是回圈直接運行到最后時鐘還沒開始運行。
Dim a as String
Private Sub btnRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRun.Click
For i As Integer = 0 To 5
a = i
TimRun.Interval = 1000
TimeRun.Enabled = True
Next
End Sub
Private Sub TimRun_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TimRun.Tick
SerialPort1.Write(a)
End Sub
如何讓回圈到中的時鐘運行完后再進行下一次回圈
uj5u.com熱心網友回復:
就你的需求,沒有必要用定時器For i As Integer = 0 To 5
a = i
Thread.Sleep(多少毫秒)
SerialPort1.Write(a)
Next
uj5u.com熱心網友回復:
樓主,開啟Timer還需要TimeRun.Start(),但是在For回圈里開啟5次Timer沒什么意義啊uj5u.com熱心網友回復:
時鐘里面忘寫時鐘停止的條件陳述句
uj5u.com熱心網友回復:
直接寫sleep就好了,沒必要用定時器uj5u.com熱心網友回復:
回圈一瞬間就完成 了,你的timer要1秒鐘才運行一次,那必然是回圈完成 了tick事件還沒發生。uj5u.com熱心網友回復:
用時鐘Dim a As Integer不用時鐘
Dim n As Integer
Private Sub btnRun_Click(sender As Object, e As EventArgs) Handles btnRun.Click
n = 5 '執行6次
a = 0 '起始值0
TimRun.Interval = 1000
TimRun.Enabled = True
End Sub
Private Sub TimRun_Tick(sender As Object, e As EventArgs) Handles TimRun.Tick
'SerialPort1.Write(a.ToString)
Debug.WriteLine(a)
If (n = 0) Then
TimRun.Enabled = False
End If
n -= 1
a += 1
End Sub
Dim a As String
Private Sub btnRun_Click(sender As Object, e As EventArgs) Handles btnRun.Click
Dim method = New MethodInvoker(AddressOf go)
method.BeginInvoke(Nothing, Nothing)
End Sub
Private Sub go()
For i As Integer = 0 To 5
a = i
'SerialPort1.Write(a)
Debug.WriteLine(a)
Threading.Thread.Sleep(1000)
Next
End Sub
uj5u.com熱心網友回復:
時鐘運行時需要將控制權限給timer,即強制在timer運行完畢后再進行下一個for回圈轉載請註明出處,本文鏈接:https://www.uj5u.com/net/100655.html
標籤:VB.NET
上一篇:C# svg 轉 pdf
