Hirdetés

Keresés

Hirdetés

Új hozzászólás Aktív témák

  • vlevi

    nagyúr

    válasz togvau #8363 üzenetére

    Az async kulcsszót arra találták ki, hogy ne neked kelljen kézzel írogatni a task.wait-et. Persze ezzel részben elrejti előled a C# a valódi működést, ami kavarodást tud okozni akkor, ha az ember nincs tökéletesen tisztában az async működésével.
    Ha te várod meg a task lefutását, akkor csak csak a task fut egy külön szálon.
    Azonban onnantól kezdve, hogy async-t használsz, minden átmegy egy másik threadre, vagyis, nem a program fő szálán fut, és csak akkor tér vissza a program fő szálára, ha a te metódusod teljesen lefutott.
    webes alkalmazásnál, MVC-nél ez egy jó dolog, mert a fő thread csak korlátozott számú webrequestet tud egyszerre kiszolgálni, és, amíg minden a fő szálon fut, addig a többi webes kliens csak vár. Pl. van egy fél másodperces adatbázis műveleted, akkor ez azt jelentené, (async nélkül), hogy a webszervered fél másodpercenként 1-1 klienst tudna csak kiszolgálni. async használata esetén a teljes metódushívás egy új threadben folytatódik, a webszerver fő szála szabaddá válik, és fogadhatja a következő kérést a kliensektől.

Új hozzászólás Aktív témák