我使用异步等待。
没有东西了
我敢打赌有些任务永远不会完成。我不知道是哪一个。它一直在等待,在等待,在等待。
我安排所有任务最终终止
是否有一种特殊的技术来知道哪些任务或异步等待代码仍在等待并且尚未完成?
我使用了此功能
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)