Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 20310|Ответ: 0

[ASP.NET] ASP.NET использовать асинхронные контроллеры в MVC

[Скопировать ссылку]
Опубликовано 01.04.2018 15:20:59 | | |
Пул потоков

Я всегда хотел переписать проект на асинхронный формат, но ASP.NETMVC3 слишком громоздкий для написания, .NET 4.5 и ASP.NET MVC относительно просты, MS, похоже, всегда любила это делать — в каждом зрелом проекте приходится развивать несколько версий, чтобы стандартизировать. ASP.NET почему в MVC нужно использовать асинхронность? В IIS есть пул потоков для обработки пользовательских запросов. Когда появляется новый запрос, потоки пула будут запланированы для обработки запроса, однако при высокой параллелизме потоки в пуле уже не могут выполнять столько запросов, и каждый поток в пуле занят обработкой запроса, поток, обрабатывающий запрос, блокируется, и поток не может предоставлять услуги другому запросу, если очередь запросов заполнена, то веб Сервер отклоняет запрос и находится в загруженном состоянии HTTP 503. Если вы имеете дело с высокой задержкой, например, с сетевыми операциями, большинство потоков просто ждут состояния и чаще всего ничего не делают, такие потоки могут использовать асинхронное программирование для лучшего использования.

Асинхронная обработка

Например, если запрос генерирует сетевой вызов, который выполняется за две секунды, он выполняетсяВыполнение как синхронно, так и асинхронно занимает две секунды。 НоВо время асинхронного вызова сервер не блокирует ответ на другие запросы, ожидая завершения первого запроса。 Поэтому, когда существует множество запросов, вызывающих долгосрочные операции, асинхронные запросы могут препятствовать очереди. В .NET 4.5 максимальный пул потоков — 5000, а ключевые слова ожидания и асинхрон также добавлены в .NET 4.5 для упрощения асинхронного программирования.

Синхронный или асинхронный (отрывок из MSDN)

  • Обычно синхронизированные конвейеры используются при выполнении следующих условий:
  • Простое управление или короткое время выполнения.
  • Простота важнее эффективности.
  • Эта операция в первую очередь связана с процессором, а не с большими накладными нагрузками на диск или сеть. Использование асинхронного метода работы для операций, связанных с процессором, не приносит пользы и также увеличивает нагрузку.

В общем случае асинхронные конвейеры используются при выполнении следующих условий:

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

ASP.NET использовать асинхронные контроллеры в MVC






Предыдущий:WPF mvvm фреймворк стилет и материалы по переводу документов и учебным материалам
Следующий:[Windows API] Code Assistant для C# Query API [с исходным кодом]
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com