#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
в этом контексте).