C# 无法命中嵌套异步等待中的断点

C# 无法命中嵌套异步等待中的断点,c#,asynchronous,async-await,C#,Asynchronous,Async Await,我不熟悉C#中的异步编码,有些东西我不太懂。我的代码布局如下所示Method1(这是我手动执行的单元测试方法)调用Method2,然后调用Method3,所有这些都是异步完成的。在调试时,我能够在Method2之前命中断点,但我无法让调试器命中Method3中的任何断点,相反,焦点返回到Method1。。。有人能给我解释一下为什么会这样吗?为什么我能够在Method2中命中断点,而不能在Method3中命中断点 [TestMethod] public async Task Method1() {

我不熟悉C#中的异步编码,有些东西我不太懂。我的代码布局如下所示
Method1
(这是我手动执行的单元测试方法)调用
Method2
,然后调用
Method3
,所有这些都是异步完成的。在调试时,我能够在
Method2
之前命中断点,但我无法让调试器命中
Method3
中的任何断点,相反,焦点返回到
Method1
。。。有人能给我解释一下为什么会这样吗?为什么我能够在
Method2
中命中断点,而不能在
Method3
中命中断点

[TestMethod]
public async Task Method1()
{
   ... <some code before> ... //breakpoint1 - hits!

   await Method2(...)

   ... <some code after> ... //breakpoint4 - hits immediately after hitting breakpoint2, skipping breakpoint3

}

public async Task<SampleResponseObject> Method2(...)
{
   ... <some code before> ...

   return await Method3(...); //breakpoint2 - hits! But I cannot step into this.

}

internal virtual async Task<SampleResponseObject> Method3(...)
{
   ... <some code here> ... //breakpoint3 - does NOT hit!
}
[TestMethod]
公共异步任务方法1()
{
……点击1次!
等待方法2(…)
..//breakpoint4-在命中断点2后立即命中,跳过断点3
}
公共异步任务方法2(…)
{
...  ...
return await Method3(…);//断点2-hits!但我无法进入这个步骤。
}
内部虚拟异步任务方法3(…)
{
……断点3-未命中!
}

您能提供一个简单的工作示例吗?