.net - await 调用崩溃但 .Result 成功
问题描述
我偶然发现了一个奇怪的问题......
这是一个简单的代码,只需使用 await 调用 API
public async Task<IEnumerable<DTO>> GetAll(int Id, string APIPath)
{
var client = new HttpClient();
var response = await client.GetAsync($"{APIPath}/Contract/GetAll?Id={Id}");
var responseResult = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<IEnumerable<DTO>>(responseResult.ToString());
}
当我调试时,当我越界时await
。应用程序崩溃,没有任何异常,调试会话结束。
但是当我将 更改为await
时.Result
,调试会话继续并继续正常运行,甚至返回来自 API 的响应。
我的猜测是,不知何故没有创建新线程并且调试会话由于崩溃而完成。有什么想法,为什么?
更新 它是一个 .Net Core 控制台应用程序
UPDATE2 不知道它有什么帮助,但这里是呼叫线......
var contracts = await _contractAdapter.GetAll(Id, APIPath);
解决方案
推荐阅读
- gtk - 如何为 GTK2 框添加边框?
- python - 使用 Selenium Python 时出现 NoSuchElementException
- python - 使用python将文件/文件夹从Windows机器备份到远程Windows机器
- python-3.x - 在 Python 中递归地求和并打印树中的所有节点名称和值
- haskell - 泛型:带有类的 syb 的当前状态
- javascript - 如何在Vue中更改特定的复选框标签类@change?
- python - 使用预拟合 lmfit 模型预测新数据集中的值
- r - RStudio Fedora 32 中的输入键盘源问题
- php - 如何将 phpmyAdmin DB 中的数据与表单数据 laravel 进行比较
- matlab - 在 Matlab 中以 x 轴类型作为日期时间的对数 y 轴绘图