[英]What happens when you create a Task?
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.Result时; 他们等到B完成并返回结果?
由于将没有“线程B”,因此线程A将永远等待。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.