【发布时间】:2015-12-22 12:19:57
【问题描述】:
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?
【问题讨论】:
-
网络上有大量关于任务的文档。尝试搜索。 :)
-
什么也没发生。 blog.stephencleary.com/2014/05/…
-
@Vadim 天哪,这是一篇糟糕的文章。 “[Tasks] 支持一段代码在并行处理器中运行。它只是简单地将线程生成到多个进程中” - 嗯...
-
"当我创建一个新的
Task时,线程会发生什么?"没有。新的Task对象被创建为非活动状态。如果您不对foo对象执行任何其他操作,则永远不会调用bar。
标签: c# multithreading