Asynchrónne volanie metódy

Autor: Lewis Jackson
Dátum Stvorenia: 8 Smieť 2021
Dátum Aktualizácie: 25 V Júni 2024
Anonim
Asynchrónne volanie metódy - Technológie
Asynchrónne volanie metódy - Technológie

Obsah

Definícia - Čo znamená asynchrónne volanie metódy?

Asynchrónne volanie metódy je metóda použitá v programovaní .NET, ktorá sa vracia volajúcemu bezprostredne pred ukončením jeho spracovania a bez blokovania volacieho vlákna.

Keď aplikácia volá asynchrónnu metódu, môže ju súčasne vykonať spolu s vykonaním asynchrónnej metódy, ktorá vykonáva svoju úlohu. Asynchrónna metóda beží v vlákne oddelenom od hlavného vlákna aplikácie. Výsledky spracovania sa načítajú ďalším hovorom v inom vlákne.

Asynchrónne metódy pomáhajú optimalizovať vykonávanie prostriedkov, ktorých výsledkom je škálovateľná aplikácia. Používajú sa na vykonávanie časovo náročných úloh, ako je otváranie veľkých súborov, pripojenie k vzdialeným počítačom, vyhľadávanie v databáze, volanie webových služieb a webových formulárov ASP.NET.

Asynchrónne volanie metódy sa môže tiež označovať ako asynchrónne vyvolanie metódy (AMI).


Úvod do programu Microsoft Azure a Microsoft Cloud V tejto príručke sa dozviete, o čom všetko je cloud computing a ako vám môže Microsoft Azure pomôcť migrovať a podnikať z cloudu.

Techopedia vysvetľuje asynchrónne volanie metód

Asynchrónna metóda sa líši od synchrónnej metódy spôsobom, akým sa vracia z hovoru. Zatiaľ čo asynchrónne volanie metódy sa okamžite vracia, čo volajúcemu programu umožňuje vykonávať ďalšie operácie, synchrónne volania metódy čakajú na dokončenie metódy pred pokračovaním v toku programu.

Framework .NET má zabudovanú asynchrónnu infraštruktúru, takže je možné asynchrónne vyvolať ľubovoľnú metódu bez zmeny jej kódu.

NET Framework poskytuje dva návrhové vzory na implementáciu asynchrónnej metódy, ktoré používajú asynchrónne delegáty (objekty IASyncResult) a udalosti. Asynchrónny model delegátov je zložitejší a poskytuje flexibilitu, vďaka čomu sa dobre hodí pre rôzne zložité programovacie modely. Model založený na udalosti je jednoduchý a mal by sa používať vo väčšine prípadov.

Vo vzore asynchrónnych delegátov objekt delegáta používa dve metódy: BeginInvoke a EndInvoke. BeginInvoke má zoznam parametrov, ktoré sú podobné jeho zabalenej funkcii, spolu s dvoma ďalšími voliteľnými parametrami; vráti objekt IAsyncResult. EndInvoke vráti dva parametre (typ out a ref) spolu s objektom IAsyncResult. BeginInvoke sa používa na začatie asynchrónneho volania, zatiaľ čo EndInvoke sa používa na načítanie výsledkov asynchrónneho volania.

Asynchrónne vzory založené na udalostiach používajú triedu, ktorá má jednu alebo viac metód s názvom MethodNameAsync, ktoré majú zodpovedajúce synchrónne verzie, ktoré sa vykonávajú na aktuálnom vlákne. Vzory založené na udalostiach môžu obsahovať aj udalosť MethodNameCompleted a MethodNameAsyncCancel. Tento vzorec umožňuje triede komunikovať s čakajúcimi asynchrónnymi operáciami pomocou modelu delegovanej udalosti.

Nasleduje niekoľko rád týkajúcich sa asynchrónnych metód:


  • Pre vysokú súbežnosť je potrebné vyhnúť sa asynchrónnym metódam
  • Pri odovzdávaní odkazov na zdieľané objekty je potrebné postupovať opatrne
  • EndXXX (volaný na konci asynchrónnej operácie) musí byť volaný, aby vynechal výnimky a zabránil zlyhaniu
  • Zachytením a uložením všetkých výnimkových objektov asynchrónnou metódou je možné počas hovoru EndXXX znova pretočiť
  • Ovládacie prvky v používateľskom rozhraní, ktoré iniciujú dlhodobé asynchrónne operácie, sa musia vypnúť, ak sú potrebné iba na tento účel.
  • Asynchrónne metódy sa musia implementovať s pochopením viacvláknového spracovania a tam, kde sa ukážu, že sú efektívnejšie ako použitie synchronných metód.