Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 20310|Antwoord: 0

[ASP.NET] ASP.NET gebruik asynchrone controllers in MVC

[Link kopiëren]
Geplaatst op 01-04-2018 15:20:59 | | |
Threadpool

Ik heb altijd al het project willen herschrijven naar asynchroon, maar ASP.NETMVC3 is te omslachtig om te schrijven, .NET 4.5 en ASP.NET MVC-code is relatief eenvoudig, MS lijkt dit altijd al leuk te hebben gevonden, bij elke volwassen ontwikkeling moet het meerdere versies ontwikkelen om te standaardiseren. ASP.NET waarom moet je asynchroon gebruiken in MVC? IIS heeft een threadpool om gebruikersverzoeken te verwerken; wanneer er een nieuw verzoek binnenkomt, worden de threads in de pool gepland om het verzoek te verwerken, maar als de gelijktijdigheid hoog is, kunnen de threads in de pool niet meer aan zoveel verzoeken voldoen, en is elke thread in de pool druk bij het verwerken van het verzoek, de thread die het verzoek verwerkt wordt geblokkeerd en kan de thread geen diensten leveren aan een ander verzoek; als de request queue vol is, het web De server wijst het verzoek af en bevindt zich in een HTTP 503 bezette toestand. Als je te maken hebt met hoge latentie, zoals netwerkoperaties, wachten de meeste van deze threads gewoon op de status en doen ze meestal niets; zulke threads kunnen asynchrone programmering gebruiken om er beter gebruik van te maken.

Asynchrone verwerking

Als een verzoek bijvoorbeeld een netwerkoproep genereert die twee seconden duurt om te voltooien, wordt het verzoek gedaanHet duurt twee seconden om zowel synchroon als asynchroon uit te voeren。 MaarTijdens een asynchrone aanroep blokkeert de server het antwoord op andere verzoeken niet terwijl hij wacht tot het eerste verzoek is afgerond。 Daarom kunnen asynchrone verzoeken bij veel verzoeken die langlopende operaties aanroepen, voorkomen dat verzoeken in de wachtrij komen. In .NET 4.5 is de maximale threadpool 5000, en zijn ook de await- en asynchrone trefwoorden toegevoegd in .NET 4.5 om asynchrone programmering te vereenvoudigen.

Synchroon of asynchroon (fragment uit MSDN)

  • Typisch worden synchronisatiepijplijnen gebruikt wanneer aan de volgende voorwaarden is voldaan:
  • Eenvoudige bediening of korte gebruikstijd.
  • Eenvoud is belangrijker dan efficiëntie.
  • Deze bewerking bestaat voornamelijk uit CPU-operaties in plaats van bewerkingen die veel schijf- of netwerkoverhead vereisen. Het gebruik van een asynchrone bewerkingsmethode voor CPU-gebonden operaties levert geen voordeel op en leidt ook tot meer overhead.

In het algemeen worden asynchrone pijplijnen gebruikt wanneer aan de volgende voorwaarden is voldaan:

  • Operaties zijn netwerkgebonden of I/O-gebonden in plaats van CPU-gebonden.
  • Tests hebben aangetoond dat blokkeringsoperaties een bottleneck zijn voor de siteprestaties, en door asynchrone methoden te gebruiken voor deze blokkeringsaanroepen, kan IIS meer verzoeken uitvoeren.
  • Parallelisme is belangrijker dan eenvoud van code.
  • Je wilt een mechanisme bieden waarmee gebruikers langlopende verzoeken kunnen annuleren.

ASP.NET gebruik asynchrone controllers in MVC






Vorig:WPF mvvm framework stylet documentvertaling en leermaterialen
Volgend:[Windows API] Code Assistant voor C# Query API [met broncode]
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com