Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 20310|Atsakyti: 0

[ASP.NET] ASP.NET naudoti asinchroninius valdiklius MVC

[Kopijuoti nuorodą]
Paskelbta 2018-04-01 15:20:59 | | |
Siūlų telkinys

Aš visada norėjau perrašyti projektą į asinchroninį, bet ASP.NETMVC3 yra per sudėtinga rašyti, .NET 4.5 ir ASP.NET MVC kodas yra gana paprastas, MS atrodo, kad visada mėgo tai daryti, kiekvienas brandus dalykas, jis turi plėtoti keletą versijų linkę standartizuoti. ASP.NET kodėl MVC reikia naudoti asinchroninį, IIS turi gijų telkinį vartotojų užklausoms apdoroti, kai gaunama nauja užklausa, telkinio gijos bus suplanuotos apdoroti užklausą, tačiau kai sutapimas yra didelis, telkinio gijos nebegali patenkinti tiek daug užklausų, o kiekviena telkinio gija yra užimta apdorojant užklausą, užklausą apdorojanti gija bus užblokuota, o gija negali teikti paslaugų kitai užklausai, jei užklausų eilė pilna, žiniatinklis Serveris atmeta užklausą ir yra užimtas HTTP 503. Jei susiduriate su dideliu vėlavimu, pvz., tinklo operacijomis, dauguma šių gijų tiesiog laukia būsenos ir didžiąją laiko dalį nieko nedaro, tokios gijos gali naudoti asinchroninį programavimą, kad geriau ją išnaudotų.

Asinchroninis apdorojimas

Pavyzdžiui, jei užklausa sugeneruoja tinklo skambutį, kuris užtrunka dvi sekundes, užklausa pateikiamaVykdyti tiek sinchroniškai, tiek asinchroniškai užtrunka dvi sekundes。 BetAsinchroninio skambučio metu serveris neblokuoja atsakymo į kitas užklausas, laukdamas, kol bus baigta pirmoji užklausa。 Todėl, kai yra daug užklausų, iškviečiančių ilgai trunkančias operacijas, asinchroninės užklausos gali užkirsti kelią užklausų eilėje. .NET 4.5 maksimalus gijų telkinys yra 5000, o laukimo ir asinchroniniai raktažodžiai taip pat buvo įtraukti į .NET 4.5, kad būtų supaprastintas asinchroninis programavimas.

Sinchroninis arba asinchroninis (ištrauka iš MSDN)

  • Paprastai sinchronizavimo srautai naudojami, kai tenkinamos šios sąlygos:
  • Paprastas valdymas arba trumpas veikimo laikas.
  • Paprastumas yra svarbesnis už efektyvumą.
  • Ši operacija pirmiausia yra procesoriaus operacijos, o ne operacijos, susijusios su daug disko ar tinklo pridėtinių išlaidų. Asinchroninio veikimo metodo naudojimas procesoriaus operacijoms neduoda jokios naudos, be to, padidėja pridėtinės išlaidos.

Apskritai asinchroniniai vamzdynai naudojami, kai tenkinamos šios sąlygos:

  • Operacijos yra susietos su tinklu arba I/O, o ne su procesoriumi.
  • Bandymai parodė, kad blokavimo operacijos yra kliūtis svetainės veikimui, o naudojant asinchroninius metodus šiems blokavimo skambučiams, IIS gali aptarnauti daugiau užklausų.
  • Lygiagretumas yra svarbesnis už kodo paprastumą.
  • Norite pateikti mechanizmą, leidžiantį vartotojams atšaukti ilgai trunkančias užklausas.

ASP.NET naudoti asinchroninius valdiklius MVC






Ankstesnis:WPF mvvm framework stylet dokumentų vertimo ir mokymosi medžiaga
Kitą:[Windows API] kodo pagalbinė priemonė, skirta C# užklausos API [su šaltinio kodu]
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com