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
称为冷任务…所有其他任务在热状态下开始其生命周期。