考虑以下代码片段:
Task[] tasks = new Task[4];
for (var i = 0; i < tasks.Length; ++i) {
tasks[i] = Task.Run(async () =>
{
await Task.Delay(4000);
});
}
for (var i = 0; i < tasks.Length; ++i)
await tasks[i];
Console.WriteLine("Done!");
这段代码正常运行,执行时间为4.000毫秒。然而,如果我将Task.Run
替换为Task.Factory.StartNew
,它只需要0.006毫秒!
有人能解释一下为什么吗?