创建任务时会发生什么情况

本文关键字:什么情况 任务 创建 | 更新日期: 2023-09-27 18:27:53

public MyClass foo(int parameter)
{
    var foo = new Task<MyClass>(() => bar(parameter));
    try 
    {
        return foo.Result;
    }
}

当我创建一个new Task时,线程会发生什么.

这意味着新线程(B(开始评估bar(parameter),当主线程(A(进入foo.Result;时,它们会等到B完成并返回Result

创建任务时会发生什么情况

从这里:

由其公共构造函数创建的任务称为"冷" 任务,因为它们在非计划期间开始其生命周期 TaskStatus.Created 状态,直到在这些状态上调用 Start 它们进展到已计划的实例

因此,不会启动">

线程 B"(此外,">启动新任务"!= ">启动新线程"在一般情况下(。

当主线程 (A( 转到 foo 时。结果;他们等到 B 完成并返回结果?

由于没有"线程 B",线程 A 将永远等待。