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 Beta,请确保您的单元测试返回Task.void

如果您使用的是 VS2010 或 VS11 Dev Preview,那么您可以使用我的Async Unit Tests项目。

完整的详细信息在我的博客上,但归结为:

  • async当它必须异步等待时将返回。
  • 在单元测试中,它返回到测试运行器,它会看到测试完成。
于 2012-05-29T16:40:57.390 回答