3

给定 a Task t,两者之间是否存在语义差异

t.ContinueWith(ante => DoSomethingWith(ante));

t.ContinueWith(ante => DoSomethingWith(t));

,假设t以后没有突变?

antecedent这个论点是否只是为了避免像第二个变体中那样分配闭包?

4

1 回答 1

5

是否存在先行论点只是为了避免像第二个变体中那样分配闭包?

实际上,是的。它还可以让您更简洁地编写如下:

 Task.Factory.StartNew( () => DoSomething())
             .ContinueWith( t => DoSomethingWith(t));

它还提供了与使用TaskFactory.ContinueWhenAll或类似的 API TaskFactory.ContinueWhenAny

于 2012-05-30T19:48:16.930 回答