调试时调用async方法导致控制台应用意外退出问题求助
调试Async/Await时会话意外退出的问题及临时解决办法
- 该问题仅在控制台应用、Windows服务应用中出现,尚未在Windows Forms或WPF应用中测试
- 调试代码时,只要执行到带
await的async调用,调试会话就会意外终止,无法继续调试 - 当前临时解决办法是改用
Task.Run(),但调试时修改所有async调用语法、部署时再改回原写法,操作十分繁琐
存在调试问题的代码(部署后可正常运行)
var response = await httpClient.SendAsync(request);
调试临时替代代码
//var response = await httpClient.SendAsync(request); var task = Task.Run(() => httpClient.SendAsync(request)); task.Wait(); var response = task.Result;
完整示例代码
private static async Task<string> SendRequest() { string result = ""; string url = "http://localhost:5119/WeatherForecast"; var URL = new Uri(url); var method = new HttpMethod("GET"); using (var request = new HttpRequestMessage(method, URL)) { var response = await httpClient.SendAsync(request); //var task = Task.Run(() => httpClient.SendAsync(request)); //task.Wait(); //var response = task.Result; result = await response.Content.ReadAsStringAsync(); } return result; }
内容的提问来源于stack exchange,提问作者coder
相关产品推荐
相关产品推荐

