Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 20310|Svar: 0

[ASP.NET] ASP.NET bruger asynkrone controllere i MVC

[Kopier link]
Opslået på 01/04/2018 15.20.59 | | |
Trådpulje

Jeg har altid ønsket at omskrive projektet til asynkront, men ASP.NETMVC3 er for besværligt at skrive, .NET 4.5 og ASP.NET MVC-kode er relativt simpelt, MS har tilsyneladende altid kunnet lide at gøre dette, for alt modent skal det udvikle flere versioner for at kunne standardiseres. ASP.NET hvorfor skal du bruge asynkron i MVC? IIS har en trådpulje til at behandle brugerforespørgsler; når en ny anmodning kommer, vil trådene i puljen blive planlagt til at behandle forespørgslen, men når samtidigheden er høj, kan trådene i puljen ikke længere opfylde så mange forespørgsler, og hver tråd i puljen er optaget, når anmodningen behandles, vil tråden, der behandler anmodningen, blive blokeret, og tråden kan ikke levere tjenester til en anden anmodning, hvis anmodningskøen er fuld, web Serveren afviser anmodningen og er i en HTTP 503 optaget tilstand. Hvis du har med høj latenstid, som netværksoperationer, venter de fleste af disse tråde bare på tilstanden og gør ingenting det meste af tiden, sådanne tråde kan bruge asynkron programmering for bedre at udnytte det.

Asynkron behandling

For eksempel, hvis en anmodning genererer et netværkskald, der tager to sekunder at fuldføre, foretages anmodningenDet tager to sekunder at udføre både synkront og asynkront。 MenUnder et asynkront kald blokerer serveren ikke svaret på andre forespørgsler, mens den venter på, at den første anmodning bliver færdig。 Derfor, når der er mange forespørgsler, der kalder langvarige operationer, kan asynkrone forespørgsler forhindre forespørgsler i kø. I .NET 4.5 er den maksimale trådpulje 5000, og nøgleordene await og async er også tilføjet i .NET 4.5 for at forenkle asynkron programmering.

Synkron eller asynkron (uddrag fra MSDN)

  • Typisk bruges synkroniseringspipelines, når følgende betingelser er opfyldt:
  • Simpel drift eller kort driftstid.
  • Enkelhed er vigtigere end effektivitet.
  • Denne operation er primært CPU-operationer frem for operationer, der involverer meget disk- eller netværksoverhead. At bruge en asynkron driftsmetode til CPU-bundne operationer giver ingen fordel og medfører også mere overhead.

Generelt anvendes asynkrone pipelines, når følgende betingelser er opfyldt:

  • Operationerne er netværksbundne eller I/O-bundne i stedet for CPU-bundne.
  • Tests har vist, at blokeringsoperationer er en flaskehals for site-ydelsen, og ved at bruge asynkrone metoder til disse blokeringer kan IIS håndtere flere forespørgsler.
  • Parallelisme er vigtigere end enkelhed i koden.
  • Du vil gerne tilbyde en mekanisme, der gør det muligt for brugere at annullere langvarige forespørgsler.

ASP.NET bruger asynkrone controllere i MVC






Tidligere:WPF mvvm framework stylet dokumentoversættelse og læringsmaterialer
Næste:[Windows API] Kodeassistent til C# Query API [med kildekode]
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com