6

我有这个示例代码:

Task<int> t1= new Task<int>(()=>1);
t1.ContinueWith(r=>1+r.Result).ContinueWith(r=>1+r.Result);
t1.Start();

Console.Write(t1.Result); //1

它显然Resultt1任务中返回。(这是1)

但是我怎样才能Result最后一个继续任务中得到(它应该是3{1+1+1})

4

1 回答 1

5

ContinueWith本身返回一个任务 - Task<int>在这种情况下。你可以做任何事情(或多或少——你不能手动Start继续,例如)你希望用这个任务完成你可以用“原始”任务完成的任何事情,包括等待它的完成和检查它的结果。

var t1 = new Task<int>( () => 1);
var t2 = t1.ContinueWith(r => 1 + r.Result)
           .ContinueWith(r => 1 + r.Result);

t1.Start();

Console.Write(t1.Result); //1
Console.Write(t2.Result); //3
于 2013-05-18T07:01:11.287 回答