当堆栈上什么都没有时,我该如何调试异步程序

时间:2020-04-21 08:04:12

标签: vb.net async-await

我使用异步等待。

没有东西了

我敢打赌有些任务永远不会完成。我不知道是哪一个。它一直在等待,在等待,在等待。

我安排所有任务最终终止

是否有一种特殊的技术来知道哪些任务或异步等待代码仍在等待并且尚未完成?

我使用了此功能

Public Shared Async Function whenAllWithTimeout(taskar As Task(), timeout As Integer) As Task
    Dim timeoutTask = Task.Delay(timeout)
    Dim maintask = Task.WhenAll(taskar)
    Await Task.WhenAny({timeoutTask, maintask})

    If timeoutTask.IsCompleted Then
        Dim b = 1
        For Each tsk In taskar
            LogEvents("status of task " + tsk.Id.ToString + " is " + tsk.IsCompleted.ToString)
        Next
    End If
End Function

我替换了

    Await Task.WhenAll(tasklist.ToArray)

使用

    Await jsonHelper.whenAllWithTimeout(tasklist.ToArray, 500000)

0 个答案:

没有答案