运行函数,直到返回true或15秒

时间:2017-10-02 16:21:02

标签: vb.net

我有一个方法需要重新运行,直到它返回True或设定的时间段已经过去。取消令牌是否可以这样做?秒表?计时器?

    Do While partReady = False
        partReady = readTag(part, "_IO_EM_DI_04")
    Loop

运行它直到我返回true,但是我需要在取消并抛出异常或在给定时间段后退出循环。

2 个答案:

答案 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核心运行。