有没有办法将状态对象传递给 .net 4.0 中的 ContinueWith 函数?此选项在 .net 4.5 中可用。
我查看了 .net 4.0 的源代码,它在创建后续任务时将状态对象硬编码为 null。
有没有办法将状态对象传递给 .net 4.0 中的 ContinueWith 函数?此选项在 .net 4.5 中可用。
我查看了 .net 4.0 的源代码,它在创建后续任务时将状态对象硬编码为 null。
.NET 4 版本ContinueWith
不提供此选项。
但是,您可以使用闭包或将数据包装到Task<T>
自身中,具体取决于生成的方式,以便访问在先行任务中创建的状态数据。
任务的 AsyncState 成员应该是您为原始任务提供的状态的值,即使在 ContinueWith 中被引用为先行任务时也是如此。这对 .Net 4.0 有效。
Task.Factory
.StartNew( state => ..., myState)
.ContinueWith( task => task.AsyncState == myState);