Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 20985|Відповідь: 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, а ключові слова await і async також додані в .NET 4.5 для спрощення асинхронного програмування.

Синхронний або асинхронний (витяг з MSDN)

  • Зазвичай синхронні конвеєри використовуються, коли виконуються такі умови:
  • Проста робота або короткий час роботи.
  • Простота важливіша за ефективність.
  • Ця операція насамперед стосується операцій процесора, а не з великими накладними витратами на диск або мережу. Використання асинхронного методу роботи для операцій, обмежених процесором, не дає жодної користі і також призводить до більших накладних витрат.

Загалом, асинхронні конвеєри використовуються, коли виконуються такі умови:

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

ASP.NET використовувати асинхронні контролери в MVC






Попередній:Фреймворк WPF mvvm стилі перекладу документів та навчальні матеріали
Наступний:[Windows API] Code Assistant для C# Query API [з вихідним кодом]
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com