Как отлаживать программу await asyn c, когда в стеке вообще ничего нет - PullRequest
0 голосов
/ 21 апреля 2020

Я использую asyn c await.

В стеке ничего нет

Я ставлю некоторые задачи никогда Фини sh. Я не знаю, какой. Он продолжает ждать, ждать и ждать.

Я организую, чтобы все задачи в конечном итоге заканчивались

Существует ли специальная методика, позволяющая узнать, какие задачи или асин c код ожидания все еще там ожидают и не завершены ?

Я использовал эту функцию

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)
...