C # /. Net: GetResponseAsync занимает слишком много времени [дубликат]

Попробуйте:

find / -type f -exec grep -H 'text-to-find-here' {} \;

, который будет искать все файловые системы, потому что / является корневой папкой.

Для использования домашней папки:

find ~/ -type f -exec grep -H 'text-to-find-here' {} \;

Для использования текущей папки:

find ./ -type f -exec grep -H 'text-to-find-here' {} \;
20
задан Filip Skakun 9 September 2014 в 17:54
поделиться

1 ответ

Я подозреваю, что в дополнение к вашему стеку вызовов вы вызываете Wait или Result в возвращаемом Task. Это вызовет тупик, о котором я расскажу в своем блоге .

Следуйте этим рекомендациям, чтобы избежать тупиковой ситуации:

  1. Не блокировать по коду async; используйте async до конца.
  2. В ваших «библиотечных» методах используйте ConfigureAwait(false).
31
ответ дан weston 22 August 2018 в 14:45
поделиться
  • 1
    Спасибо. Это было именно так. Спасибо за ссылку, это очень полезно. – John Koerner 3 October 2012 в 05:35
  • 2
    @Stephen, спасибо за сообщения в блоге! Уточняющий вопрос: если я использую .ConfigureAwait(false) в моей lib (в основном WebClient), могу ли я затем использовать .Result при вызове? Кажется, что это работает, но я не знаю, что произойдет, когда я отпущу его в дикой природе. – Brad 4 September 2014 в 17:54
  • 3
    @Brad: Да, если метод асинхронного вызова, который вы вызываете, делает то же самое. Однако использовать Result не рекомендуется; всегда есть лучшие варианты. – Stephen Cleary 4 September 2014 в 17:58
  • 4
    @Stephen, метод async, который я вызываю, возвращает задачу и не вызывает результат. Этот код является настраиваемой оболочкой для вызова внутреннего API и единственной частью, которую я хочу сделать async в реальных методах GET / POST (GetRequestStreamAsync, GetResponseAsync и т. Д.). Как сохранить этот асинхронный режим, не делая каждый метод между этим и действием контроллера async и возвращая задачу? Я бы хотел, чтобы lib позаботился о том, чтобы асинхронный характер и потребитель оставались агностиками. – Brad 4 September 2014 в 18:13
  • 5
    @Brad: Это невозможно, из-за характера асинхронного кода. Лучше всего использовать async. – Stephen Cleary 4 September 2014 в 19:31
Другие вопросы по тегам:

Похожие вопросы: