Asynchronous Method Call

Szerző: Lewis Jackson
A Teremtés Dátuma: 8 Lehet 2021
Frissítés Dátuma: 25 Június 2024
Anonim
Asynchronous Method Call
Videó: Asynchronous Method Call

Tartalom

Meghatározás - Mit jelent az aszinkron módszerhívás?

Az aszinkron módszerhívás a .NET programozás során alkalmazott módszer, amely közvetlenül a feldolgozás befejezése előtt tér vissza a hívó fél számára a hívó szál blokkolása nélkül.

Amikor egy alkalmazás aszinkron módszert hív, akkor egyidejűleg végrehajthatja a feladatát végrehajtó aszinkron módszer végrehajtásával. Az aszinkron módszer a fő alkalmazás szálatól különálló szálban fut. A feldolgozási eredmények egy másik szál másik hívásán keresztül kerülnek beolvasásra.

Az aszinkron módszerek segítik az erőforrások végrehajtásának optimalizálását, skálázható alkalmazáshoz vezetve. Ezeket időigényes feladatok végrehajtására használják, mint például nagy fájlok megnyitása, csatlakozás távoli számítógépekhez, adatbázis lekérdezése, webszolgáltatások hívása és ASP.NET webes űrlapok.

Az aszinkron módszerhívást aszinkron módszer hívására (AMI) is hivatkozhatjuk.


Bevezetés a Microsoft Azure és a Microsoft Cloud | A jelen útmutató során megtanulja, mi szól a felhőalapú számítástechnikából, és hogyan segítheti a Microsoft Azure a felhőből történő migrációt és az üzleti vállalkozás futtatását.

A Techopedia magyarázza az aszinkron módszerhívást

Az aszinkron módszer abban különbözik a szinkron módszertől, ahogyan visszatér a híváshoz. Míg az aszinkron módszerhívás azonnal visszatér, lehetővé téve a hívó program számára, hogy más műveleteket hajtson végre, addig a szinkron módszerhívások megvárják a módszer befejezését, mielőtt folytatnák a programáramlást.

A .NET-keretrendszer beépítette az aszinkron infrastruktúrát, így bármilyen módszer aszinkron módon meghívható a kód megváltoztatása nélkül.

A .NET-keretrendszer két tervezési mintát biztosít az aszinkron módszer megvalósításához, amelyek aszinkron delegáltokat (IASyncResult objektumok) és eseményeket használnak. Az aszinkron delegálók mintája bonyolultabb és rugalmasságot nyújt, ami jól illeszkedik a különféle komplex programozási modellekhez. Az eseményalapú modell egyszerű, és a legtöbb esetben alkalmazni kell.

Az aszinkron delegált mintában egy delegált objektum két módszert használ: BeginInvoke és EndInvoke. A BeginInvoke tartalmaz egy paraméter-listát, amelyek hasonlóak a beépített funkcióhoz, valamint két további opcionális paraméter; visszaadja az IAsyncResult objektumot. Az EndInvoke két paramétert ad vissza (out és ref type) az IAsyncResult objektummal együtt. A BeginInvoke az aszinkron hívás kezdeményezésére szolgál, míg az EndInvoke az aszinkron hívás eredményének lekérésére szolgál.

Az eseményalapú aszinkron minták olyan osztályt használnak, amelyben egy vagy több módszer, a MethodNameAsync elnevezésű, amelyeknek megfelelő szinkron verziói vannak, amelyek az aktuális szálon futnak. Az eseményalapú mintáknak is lehet MethodNameCompleted esemény és MethodNameAsyncCancel módszer. Ez a minta lehetővé teszi az osztály számára, hogy a delegált eseménymodell segítségével kommunikáljon a függőben lévő aszinkron műveletekkel.

Az alábbiakban bemutatjuk az aszinkron módszerekkel kapcsolatos néhány tippet:


  • A nagy párhuzamosság érdekében kerülni kell az aszinkron módszereket
  • Vigyázni kell a megosztott objektum hivatkozások átadásakor
  • Az EndXXX-t (amit egy aszinkron művelet végén hívnak) fel kell hívni a kivételek újbóli beillesztésére és a kudarc elkerülésére.
  • Ha az összes kivételes objektumot aszinkron módon elfogja és elmenti, akkor az újra dobható az EndXXX hívás során.
  • A felhasználói felületen a hosszú idejű aszinkron műveleteket kezdeményező vezérlőket le kell tiltani, ha csak erre a célra van szükség
  • Az aszinkron módszereket úgy kell megvalósítani, hogy megértsék a többszálúságot, és ahol azok hatékonyabbak, mint a szinkron módszerek használata.