2012-01-30 4 views
1

に要求の詳細を取得するには、私は次のコードのようなものがあるとしましょう:- 継続

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をかなり新しくしており、これを行う方法があるかどうか疑問に思っていましたか?

答えて

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)) 
+0

だから、簡単なあなたはそれを参照してください...おかげで非常に。 – Paddy