Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 20310|Odpověď: 0

[ASP.NET] ASP.NET používat asynchronní řadiče v MVC

[Kopírovat odkaz]
Zveřejněno 01.04.2018 15:20:59 | | |
Thread pool

Vždycky jsem chtěl přepsat projekt do asynchronního režimu, ale ASP.NETMVC3 je příliš složité na psaní, .NET 4.5 a ASP.NET kód pro MVC je relativně jednoduchý, Microsoft to vždycky rád dělal, každá vyspělá věc musí vyvíjet několik verzí, aby se standardizovala. ASP.NET proč je potřeba používat asynchronní v MVC, IIS má pool vláken pro zpracování uživatelských požadavků. Když přijde nový požadavek, vlákna v poolu jsou naplánována k jeho zpracování, ale když je souběžnost vysoká, vlákna v poolu už nemohou splnit tolik požadavků a všechna vlákna ve poolu jsou při zpracování požadavku zaneprázdněná, vlákno zpracovávající požadavek bude zablokováno a vlákno nemůže poskytovat služby jinému požadavku, pokud je fronta požadavků plná, web Server požadavek odmítne a je ve stavu obsazené HTTP 503. Pokud máte vysokou latenci, například síťové operace, většina těchto vláken jen čeká na stav a většinu času nic nedělá, taková vlákna mohou využívat asynchronní programování pro lepší využití.

Asynchronní zpracování

Například pokud požadavek generuje síťový hovor, jehož dokončení trvá dvě sekundy, požadavek je vykonánTrvá dvě sekundy na synchronní i asynchronní provedení。 AleBěhem asynchronního hovoru server neblokuje odpověď na jiné požadavky, zatímco čeká na dokončení prvního požadavku。 Proto když je mnoho požadavků volajících dlouhodobě běžící operace, asynchronní požadavky mohou zabránit frontování požadavků. V .NET 4.5 je maximální pool vláken 5000 a klíčová slova await a async byla také přidána v .NET 4.5, aby se zjednodušilo asynchronní programování.

Synchronní nebo asynchronní (ukázka z MSDN)

  • Typicky se synchronizační pipeline používají, když jsou splněny následující podmínky:
  • Jednoduchá obsluha nebo krátká doba provozu.
  • Jednoduchost je důležitější než efektivita.
  • Tato operace je primárně operace CPU, nikoli operace vyžadující velkou diskovou nebo síťovou zátěž. Použití asynchronní metody pro operace vázané na CPU nepřináší žádný přínos a zároveň vede k většímu režii.

Obecně se asynchronní potrubí používají tehdy, když jsou splněny následující podmínky:

  • Operace jsou vázané na síť nebo I/O, nikoli na CPU.
  • Testy ukázaly, že blokovací operace jsou úzkým hrdlem pro výkon lokality, a díky asynchronním metodám pro tyto blokovací volání může IIS obsloužit více požadavků.
  • Paralelismus je důležitější než jednoduchost kódu.
  • Chcete zajistit mechanismus, který uživatelům umožní zrušit dlouhodobé požadavky.

ASP.NET používat asynchronní řadiče v MVC






Předchozí:WPF mvvm framework stylet pro překlad dokumentů a učební materiály
Další:[Windows API] Code Assistant pro C# Query API [se zdrojovým kódem]
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com