Gre*_*ndy 2 .net c# async-await
我有以下代码:
async Task Main()
{
Stopwatch sw = new Stopwatch();
// Variante 1
sw.Start();
var m1 = await Task1();
var m2 = await Task2();
var m3 = await Task3();
Console.WriteLine(m1);
Console.WriteLine(m2);
Console.WriteLine(m3);
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
// Variante 2
sw.Restart();
var t1 = Task1();
var t2 = Task2();
var t3 = Task3();
m1 = await t1;
m2 = await t2;
m3 = await t3;
Console.WriteLine(m1);
Console.WriteLine(m2);
Console.WriteLine(m3);
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
}
// Define other methods, classes and namespaces here
public async Task<string> Task1()
{
await Task.Delay(5000);
return "Task1 ready";
}
public async Task<string> Task2()
{
await Task.Delay(5000);
return "Task2 ready";
}
public async Task<string> Task3()
{
await Task.Delay(5000);
return "Task3 ready";
}
Run Code Online (Sandbox Code Playgroud)
第一部分导致近 15000 毫秒,第二部分导致 5000 毫秒,但我不明白为什么!
在第一部分我等待一个异步方法返回一个任务,在第二部分我得到这个任务并等待任务。
我错过了什么?
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |