【发布时间】:2023-03-31 00:57:01
【问题描述】:
考虑一下这段代码sn-p:
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 毫秒!
谁能解释一下原因?
【问题讨论】: