我有一个方法需要重新运行,直到它返回True或设定的时间段已经过去。取消令牌是否可以这样做?秒表?计时器?
Do While partReady = False
partReady = readTag(part, "_IO_EM_DI_04")
Loop
运行它直到我返回true,但是我需要在取消并抛出异常或在给定时间段后退出循环。
答案 0 :(得分:4)
使用Stopwatch
:
Dim sw As New Stopwatch
sw.Start()
Do While partReady = False
partReady = readTag(part, "_IO_EM_DI_04")
If sw.Elapsed.TotalSeconds >= 15 Then
Exit Do
End If
Loop
答案 1 :(得分:0)
我会在这里使用一个Timer,其中你问题的循环内容被移动到Timer的Elapsed
事件中。这将允许您根据计时器滴答的频率调整CPU使用率,并帮助防止循环使用CPU核心运行。