说我有类似下面的代码:
Dim serviceTasks As New List(Of Task)()
serviceTasks.Add(Task(Of XmlElement).Factory.FromAsync(AddressOf proxy.BeginLongRunningService, _
AddressOf proxy.EndLongRunningService, _
serviceInput, _
proxy) _
.ContinueWith(Sub(antecedent) HandleServiceReturn(antecedent)))
我的延续:
private sub HandleServiceReturn(antecedant As Task(Of XmlElement))
'Do stuff with our result here
dim data = antecedant.result
end sub
我的'serviceInput'对象是传递给长时间运行的Web服务的XML文档。我创建了这些任务的组并以异步方式运行它们一切正常,直到我在Web服务调用中遇到错误。在这种情况下,能够访问在我的继续中发送到服务的“请求”参数将是有用的,因为结果只是一个例外。
我对TPL很新,我想知道是否有办法做到这一点?
答案 0 :(得分:1)
您可以将serviceInput变量的值传递给您的延续,如下所示:
serviceTasks.Add(Task(Of XmlElement).Factory.FromAsync(AddressOf proxy.BeginLongRunningService, _
AddressOf proxy.EndLongRunningService, _
serviceInput, _
proxy) _
.ContinueWith(Sub(antecedent) HandleServiceReturn(serviceInput, antecedent)))
private sub HandleServiceReturn(input As XmlDocument, antecedant As Task(Of XmlElement))