C#任务什么时候开始?

任务什么时候开始?

public void DoSomething() { Task myTask = DoSomethingAsync(); Task.WaitAll(new[] { myTask }, 2000); } public async Task DoSomethingAsync() { await SomethingElse(); } 

Task myTask = DoSomethingAsync();初始化时是否立即启动Task myTask = DoSomethingAsync(); 或者当你说在Task.WaitAll(new[] { myTask }, 2000);等待它时它会开始Task.WaitAll(new[] { myTask }, 2000);

调用async方法将返回任务,即已启动的任务。 所以没有强制它运行所需的实际代码。

根据MSDN( 感谢Stephen Cleary ),基于任务的异步模式(TAP)模式要求返回的任务很热 。 这意味着除了使用new Task创建的任务外,所有任务都将很热。

从引用的文章:

由公共Task构造函数创建的Task称为冷任务…所有其他任务在热状态下开始其生命周期。