Я наткнулся на странную проблему ...
Это простой код, который просто вызывает 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
ОБНОВЛЕНИЕ2 Не уверен, насколько это полезно, но вотвызывающая линия ...
var contracts = await _contractAdapter.GetAll(Id, APIPath);