Точка останова исчезает после асинхронного вызова - PullRequest
0 голосов
/ 11 июля 2019

У меня есть такой код:

private async Task<string> GetToken()
{
    try
    {
        response = await nugetPackage.SomeMethod();
        int x = 5;
        x++;
    }
    catch (Exception)
    {
        throw;
    }

    return response.Token;
}

Когда я пытаюсь отладить этот процесс, точка останова попадает в следующую строку:

response = await nugetPackage.SomeMethod();

, но она просто исчезает после этой точкипри нажатии f10 ничего не происходит.Оно никогда не достигает

int x = 5;

В операторе catch также есть точка останова, которая также не используется.

Метод GetToken вызывается так:

var rawToken = await GetToken();

Я думал, что ожидание означает, что основной поток не будет заблокирован, поэтому точка останова должна была попасть на следующую строку?Что может быть потенциальным объяснением этого?

1 Ответ

0 голосов
/ 11 июля 2019

F5 - это «продолжить» в Visual Studio, то есть программа продолжит работу, пока не достигнет другой точки останова.Если вы хотите продолжить построчно после точки останова, используйте F10 или кнопку «Перешагнуть» справа от продолжения на верхней панели (это похоже на стрелку, идущую над синим кружком).Существуют также инструменты для «Step Into» и «Step Out», которые показывают вам метод, вызываемый в строке, или то, в какой строке вызывается метод, в котором вы находитесь, соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...