. NET MVC-ben mi értelme van az async action-öknek?
Nem tudom pontosan mire gondolsz, talán szemléltethetem az aszinkronitás fontosságát MVC környezetben. A view-on lévő elemek külön funkciókhoz kapcsolódnak ugyebár, például bizonyos gomb szerver kommunikációt produkál. A megnyomásával egy háttérfolyamat aszinkron módon elindul, mely a szerver válaszára vár. Például nagyobb riport lekérésére, így az eltarthat akár fél-2 percig is. Ez alatt az idő alatt minden más funkciód elérhető és elindítható, mivel az aszinkronitás lehetővé teszi a programod válaszadását más területeken. Amint végzett a riport lekérése, az álatalad korábban megadott handler callback már intézheti is a válasz lekezelését.
Nem tudom ez válasz-e a kérdésedre, de ez egy példa arra, hogy sok esetben nélkülönözhetetlen az aszinkronitás, különben a felhasználó, csak annyit lát, hogy a program le van fagyva.
Iiigen, de (ha jól értelek) ez az asszinkronitás amit te írtál a kliens és szerver közt zajló (pl egy ajax async hívás böngészőből). Én viszont arra gondolok hogy a végpont a szerver oldalon egy async metódus. Tehát a http://valami/asdf/Get az egy async method lesz, vagyis pl így nézne ki az action:
public async asdf Get(int Id) ...
és én itt nem értem az async jelentősségét, ha minden egyes request új példányt csinál a controllerből, akkor nem konkrétan ugyanezt a metódust hívja meg, hanem egy másik példánynak ugyanezen metódusát, vagyis az async értelmét veszti. (most így látom)
Ugyanaz az értelme, mint bármilyen más környezetben.
Növelni lehet vele a reszponzitivitást, mert amíg egy szál áll, addig a többi dolgozhat.
Lehet, hogy külön kérésre külön thread indul(na), de nincs elérhető végtelen thread a webserver számára.
Pontosan ahogy a 4-es mondja.
Viszont a függvények belsejét is ennek megfelelően kell megírni, mert pl ha entityframework esetén SaveChanges-t és ToListet hívsz belül SaveChangesAsnyc és ToListAsyc helyett, akor cseszheted, pont ugyanott vagy mintha nem lenne async a metódusod, hiszen blokkol a hívásokkor.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!