异步调用后断点消失

时间:2019-07-11 17:03:49

标签: c# async-await

我有这样的代码:

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 :(得分:-3)

F5在Visual Studio中为“继续”,这意味着它将继续执行程序,直到遇到另一个断点为止。如果要在断点之后逐行继续,请使用F10,或使用顶部栏上“继续”右边的“ Step Over”按钮(它看起来像一个箭头越过蓝色圆圈)。还有用于“跳入”和“跳出”的工具,分别向您显示在一行中调用的方法,或分别显示您所在的方法所在的行。