Процесс завершается без исключения во время асинхронной операции

#c# #.net #json #asp.net-web-api #async-await

#c# #.net #json #asp.net-web-api #асинхронный-ожидание

Вопрос:

Хорошо, итак, я получил этот небольшой вызов общедоступного API с помощью HttpClient :

 using (var httpClient = new HttpClient()) {
    var response = await httpClient.GetAsync(uri);
}
  

Как только операция достигает GetAsync() строки, приложение закрывается без каких-либо исключений, ни в стеке вызовов, ни в обратном вызове события, который я настроил для перехвата необработанных исключений домена приложения. Я уже понял, что это может быть связано с тем, что await наблюдает за выполняемой задачей и подавляет любые исключения, однако, если я удаляю await ключевое слово, операция выполняется нормально! В чем здесь может быть проблема?

Комментарии:

1. Как вы запускаете это приложение? Можете ли вы показать код, который вызывает этот метод?

Ответ №1:

Вероятно, вы запускаете эту операцию, не дожидаясь / ожидая завершения этой операции. Таким образом, асинхронная операция запускается, но приложение продолжается и завершается до того, как сама операция успела завершиться.

Просто await корневой вызов (или использовать Wait в задаче, если вы не можете использовать await в этом контексте).