我刚开始熟悉任务并行库,有一个相对琐碎的问题,但我找不到清晰的答案。
以下代码片段有什么区别?在何时应该选择其中之一?
Task t = Task.Factory.StartNew(() => {
Result result = Utils.Calculate();
Utils.ProcessResults(result);
});
并且
Task<Result> t = Task<Result>.Factory.StartNew(() => Utils.Calculate());
t.ContinueWith((x) => Utils.ProcessResults(x));
看起来第一种方法更为可取,因为它的开销较小,并且在这个简单的例子中使用ContinueWith实际上并没有太大意义。 不过,我曾看到有些情况下使用了第二种方法,其中可以互换地替换为第一种方法...