さまざまなパラメーターを使用してSSRS2008Webサービスを呼び出し、結果のレポートをルーティングすることを目的とした小さなバッチプログラムがあります。(さまざまな理由により、SSRSサブスクリプションはこの環境では機能しません。)
現在、このParallel
クラスを使用して一度に複数のレポートを実行し、レポートサーバーの複数の同時リクエストを処理する機能を利用しています。しかし、私は(ここのコメントで)これが進むべき道ではないことを読みました:クライアント上の複数のスレッドに分散しているのは処理負荷ではなくI / Oであるため、やるべきことはWebサービスに非同期呼び出しを行い、結果を待ちます。
xxxxAsync
VS 2010は、メソッドとxxxxCompleted
イベントを含むWebサービスクライアントを生成しました。呼び出すメソッドをいくつか設定するのは比較的簡単です。1つはWebサービスメソッドを呼び出し、もう1つはRender2Async
を処理しますRender2AsyncCompleted
。
しかし今、私はなじみのない領域にいます。まず、これは私のすべてのテストを破ります。非同期Webサービスをテストするにはどうすればよいですか:非同期テストを作成することによって?アプリが特定のレポートで終了し、テストを続行できることをテストが認識できるように、アプリは独自のEventCompletedメッセージを起動する必要がありますか?
次に、アプリが途中で終了するのを防ぐにはどうすればよいですか?WaitHandle
とそのメソッドについて読みましたWaitHandle.WaitAll
が、すべてのタスクから待機ハンドルにアクセスでき、Webサービスクライアントによって公開されているものはないと想定しています。メソッドにはRender2Async
戻り値がありません。
どうもありがとう。