2016-09-18 4 views
1

Я использую HttpClient, который поддерживает только методы async. У меня есть await их в вызывающем методе (не в самом методе async, я должен ждать вызовов в методах HttpClient, насколько я знаю)?Должен ли я ждать асинхронного метода?

Мне действительно не нужно многопоточность в этом проекте. Я бы прекратил блокировку и подождал, пока я получу ответ от HttpClient, поскольку мне все равно нужно иметь данные. Это приложение Console.

+0

проверить это: http://stackoverflow.com/q/14455293/3956100 – Niklas

+0

Если вам нужен результат назад - вы 'ожидаете' за него. – zerkms

ответ

3

Нет, ничего не требует от вас await звонок. Звонок просто возвращает Task<T> вам, а не T напрямую. Если вы вызываете Result недвижимости на Task:

var result = client.MakeCallAsync().Result; 

Вы рассказываете это «Я не волнует, если он блокирует, я хочу, чтобы мой код (и эта нить) ждать здесь, пока это делается.»

1

Мне действительно не нужно многопоточность в этом проекте.

async is about asynchrony, а не многопоточность.

Я бы прекратил блокировку и ожидал, пока не получаю ответ от HttpClient, поскольку мне все равно нужно иметь данные. Это консольное приложение.

В этом случае, я бы сказал, чтобы все было синхронно. То есть, используйте WebClient вместо HttpClient.

Смежные вопросы