0

httpClient sendAsync メソッドをテストしています。同期呼び出しは正常に機能します。しかし、非同期の http リクエストを実行しようとすると、メッセージを処理する前にタスクが終了しました。この問題に遭遇した団体はありますか?

この同期呼び出しは機能します

HttpRequestMessage httprequest = new HttpRequestMessage(httpmethod, "http://www.google.ca");
var result =   _httpClient.SendAsync(httprequest, HttpCompletionOption.ResponseContentRead, cancellationToken);
HttpResponseMessage response = result.Result;

しかし、非同期呼び出しは機能しません。応答を解析しようとすると、スレッドが停止します。

HttpRequestMessage httprequest = new HttpRequestMessage(httpmethod, "http://www.google.ca");
var result =   await _httpClient.SendAsync(httprequest, HttpCompletionOption.ResponseContentRead, cancellationToken);
HttpResponseMessage response = result;

どんな助けでも大歓迎です。

4

1 に答える 1

1

VS11 ベータ版を使用している場合は、単体テストがTaskではなく を返すことを確認してくださいvoid

VS2010 または VS11 Dev Preview を使用している場合は、私のAsync Unit Testsプロジェクトを使用できます。

完全な詳細は私のブログにありますが、要約すると次のようになります。

  • async非同期に待機する必要がある場合に返されます。
  • 単体テストでは、テストの完了を確認するテスト ランナーに戻ります。
于 2012-05-29T16:40:57.390 に答える