Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 20310|Отговор: 0

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

[Копирай линк]
Публикувано в 1.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)

  • Обикновено синхронизираните конвейери се използват, когато са изпълнени следните условия:
  • Проста работа или кратко време за изпълнение.
  • Простотата е по-важна от ефективността.
  • Тази операция е предимно CPU операции, а не операции, които включват много дискови или мрежови извънредни разходи. Използването на асинхронен оперативен метод за операции, ограничени от процесора, не носи никаква полза и води до повече допълнителни разходи.

Обикновено асинхронните конвейери се използват, когато са изпълнени следните условия:

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

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






Предишен:WPF mvvm framework framework, превод на стил документи и учебни материали
Следващ:[Windows API] Code Assistant за C# Query API [с изходен код]
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com