假设我有两个异步方法
public async static Task RunAsync1()
{
await Task.Delay(2000);
await Task.Delay(2000);
}
以及
public async static Task RunAsync2()
{
var t1 = Task.Delay(2000);
var t2 = Task.Delay(2000);
await t1;
await t2;
}
然后我像这样使用它
public static void M()
{
RunAsync1().GetAwaiter().GetResult();
RunAsync2().GetAwaiter().GetResult();
}
在结果中,
RunAsync1
将会运行4秒,但是RunAsync2
只需要2秒。有人可以解释一下原因吗?这两个方法几乎相同。有何区别?
async
行为的众多讨论之一(链接:https://dev59.com/g2kw5IYBdhLWcg3wbqAS#9899487)。 - JSteward