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