Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 20310|Odpoveď: 0

[ASP.NET] ASP.NET používať asynchrónne regulátory v MVC

[Kopírovať odkaz]
Zverejnené 1. 4. 2018 15:20:59 | | |
Thread pool

Vždy som chcel projekt prepísať do asynchrónneho formátu, ale ASP.NETMVC3 je príliš zdĺhavé na písanie, .NET 4.5 a ASP.NET MVC kód je relatívne jednoduchý, MS to vždy rád robil, každá zrelá vec sa musí vyvíjať viacerými verziami, aby sa štandardizovala. ASP.NET prečo je potrebné používať asynchrónne v MVC, IIS má vláknový pool na spracovanie používateľských požiadaviek, keď príde nová požiadavka, vlákna v poole budú naplánované na spracovanie požiadavky, avšak keď je súbežnosť vysoká, vlákna v poole už nemôžu splniť toľko požiadaviek a každé vlákno v poole je pri spracovaní požiadavky zaneprázdnené, vlákno spracovávajúce požiadavku bude zablokované a vlákno nemôže poskytovať služby inej požiadavke, ak je fronta požiadaviek plná, web Server požiadavku odmietne a je v stave obsadenosti HTTP 503. Ak máte vysokú latenciu, napríklad sieťové operácie, väčšina týchto vlákien len čaká na stav a väčšinou nič nerobí, takéto vlákna môžu používať asynchrónne programovanie na lepšie využitie.

Asynchrónne spracovanie

Napríklad, ak požiadavka generuje sieťové volanie, ktoré trvá dve sekundy, požiadavka sa vykonáVykonanie trvá dve sekundy, a to synchronne aj asynchrónne。 AlePočas asynchrónneho hovoru server neblokuje odpoveď na iné požiadavky, kým čaká na dokončenie prvej požiadavky。 Preto, keď je veľa požiadaviek volajúcich dlhodobé operácie, asynchrónne požiadavky môžu zabrániť zaradeniu žiadostí. V .NET 4.5 je maximálny pool vlákien 5000 a kľúčové slová await a async boli tiež pridané v .NET 4.5 na zjednodušenie asynchrónneho programovania.

Synchronné alebo asynchrónne (úryvok z MSDN)

  • Typicky sa synchronizačné pipeline používajú, keď sú splnené nasledujúce podmienky:
  • Jednoduchá prevádzka alebo krátka doba prevádzky.
  • Jednoduchosť je dôležitejšia než efektivita.
  • Táto operácia je primárne operácia CPU, nie operácie vyžadujúce veľkú režijnú záťaž disku alebo siete. Použitie asynchrónnej metódy pre operácie viazané na CPU neprináša žiadny prínos a zároveň vedie k väčšej režijnej záťaži.

Vo všeobecnosti sa asynchrónne pipeline používajú, keď sú splnené nasledujúce podmienky:

  • Operácie sú viazané na sieť alebo I/O, nie na CPU.
  • Testy ukázali, že blokovacie operácie sú úzkym miestom pre výkon lokality, a použitím asynchrónnych metód pre tieto blokovacie volania môže IIS obslúžiť viac požiadaviek.
  • Paralelizmus je dôležitejší než jednoduchosť kódu.
  • Chcete poskytnúť mechanizmus, ktorý umožní používateľom zrušiť dlhodobé požiadavky.

ASP.NET používať asynchrónne regulátory v MVC






Predchádzajúci:WPF mvvm framework stylet preklad dokumentov a učebné materiály
Budúci:[Windows API] Asistent kódu pre C# Query API [so zdrojovým kódom]
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com