1

有没有办法将状态对象传递给 .net 4.0 中的 ContinueWith 函数?此选项在 .net 4.5 中可用。

我查看了 .net 4.0 的源代码,它在创建后续任务时将状态对象硬编码为 null。

4

2 回答 2

3

.NET 4 版本ContinueWith不提供此选项。

但是,您可以使用闭包或将数据包装到Task<T>自身中,具体取决于生成的方式,以便访问在先行任务中创建的状态数据。

于 2013-02-15T21:42:54.447 回答
1

任务的 AsyncState 成员应该是您为原始任务提供的状态的值,即使在 ContinueWith 中被引用为先行任务时也是如此。这对 .Net 4.0 有效。

Task.Factory
    .StartNew( state => ..., myState)
    .ContinueWith( task => task.AsyncState == myState);
于 2014-12-16T19:18:31.830 回答