Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asynchronous HttpClient SendAsync线程回调在解析响应之前终止_Asynchronous_Java Metro Framework_Dotnet Httpclient - Fatal编程技术网

Asynchronous HttpClient SendAsync线程回调在解析响应之前终止

Asynchronous HttpClient SendAsync线程回调在解析响应之前终止,asynchronous,java-metro-framework,dotnet-httpclient,Asynchronous,Java Metro Framework,Dotnet Httpclient,我正在测试httpClient sendAsync方法。Synchronus称其工作正常。但是,当我尝试使用异步http时 请求,任务在我处理消息之前终止。有人遇到过这个问题吗 这个同步调用有效 HttpRequestMessage httprequest = new HttpRequestMessage(httpmethod, "http://www.google.ca"); var result = _httpClient.SendAsync(httprequest, HttpCompl

我正在测试httpClient sendAsync方法。Synchronus称其工作正常。但是,当我尝试使用异步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;

非常感谢您的帮助。

如果您使用的是VS11 Beta,请确保您的单元测试返回
任务
,而不是
无效

如果您使用的是VS2010或VS11开发预览,那么您可以使用我的项目

详细情况如下,但归结起来:

  • async
    必须异步等待时将返回
  • 在单元测试中,它将返回到测试运行程序,它将看到测试完成

你说的“线死了”是什么意思?您是否看到异常,或者应用程序是否退出?它在输出窗口中退出应用程序,并显示以下消息。[3408]vstest.executionengine.appcontainer.x86.exe:程序跟踪'已退出,代码为0(0x0)。该场景只存在于单元测试中。在一个示例应用程序中,它运行良好。感谢您的快速回答。是的,在我将单元测试更改为返回任务后,它工作正常。