Asynchronní volání metody

Autor: Lewis Jackson
Datum Vytvoření: 8 Smět 2021
Datum Aktualizace: 25 Červen 2024
Anonim
Asynchronní volání metody - Technologie
Asynchronní volání metody - Technologie

Obsah

Definice - Co znamená volání asynchronní metody?

Asynchronní volání metody je metoda používaná v programování .NET, která se vrací volajícímu bezprostředně před dokončením jeho zpracování a bez blokování volajícího vlákna.

Když aplikace volá asynchronní metodu, může ji současně spustit spolu s provedením asynchronní metody, která plní svou úlohu. Asynchronní metoda běží v podprocesu odděleném od hlavního podprocesu aplikace. Výsledky zpracování jsou vyvolány dalším hovorem v jiném vlákně.

Asynchronní metody pomáhají optimalizovat provádění prostředků a výsledkem je škálovatelná aplikace. Používají se k provádění časově náročných úkolů, jako je otevírání velkých souborů, připojení ke vzdáleným počítačům, dotazování do databáze, volání webových služeb a webových formulářů ASP.NET.

Asynchronní volání metody může být také označováno jako vyvolání asynchronní metody (AMI).


Úvod do Microsoft Azure a Microsoft Cloud | V této příručce se dozvíte, o čem cloud computing je a jak vám může Microsoft Azure pomoci migrovat a řídit podnikání z cloudu.

Techopedia vysvětluje asynchronní volání metod

Asynchronní metoda se liší od synchronní metody způsobem, jakým se vrací z hovoru. Zatímco asynchronní volání metody se vrací okamžitě a umožňuje volajícímu programu provádět další operace, synchronní volání metody čeká na dokončení metody před pokračováním v toku programu.

Framework .NET má vestavěnou asynchronní infrastrukturu, takže lze libovolnou metodu asynchronně vyvolat beze změny jejího kódu.

Framework .NET poskytuje dva návrhové vzory pro implementaci asynchronní metody, což jsou ty, které používají asynchronní delegáty (objekty IASyncResult) a události. Asynchronní vzor delegátů je složitější a poskytuje flexibilitu, díky čemuž se dobře hodí pro různé složité programovací modely. Model založený na události je jednoduchý a měl by být použit ve většině případů.

Ve vzoru asynchronních delegátů používá objekt delegáta dvě metody: BeginInvoke a EndInvoke. BeginInvoke má seznam parametrů, které jsou podobné jeho zabalené funkci, spolu se dvěma dalšími volitelnými parametry; vrací objekt IAsyncResult. EndInvoke vrátí dva parametry (typ out a ref) spolu s objektem IAsyncResult. BeginInvoke se používá k zahájení asynchronního volání, zatímco EndInvoke se používá k načtení výsledků asynchronního volání.

Asynchronní vzory založené na událostech používají třídu, která má jednu nebo více metod s názvem MethodNameAsync, které mají odpovídající synchronní verze, které se spouštějí v aktuálním vláknu. Vzory založené na událostech mohou také obsahovat událost MethodNameCompleted a MethodNameAsyncCancel. Tento vzorec umožňuje třídě komunikovat s čekajícími asynchronními operacemi pomocí modelu delegované události.

Následuje několik tipů týkajících se asynchronních metod:


  • Pro vysokou souběžnost je třeba se vyhnout asynchronním metodám
  • Při předávání odkazů na sdílené objekty je třeba věnovat pozornost
  • EndXXX (zavolán na konci asynchronní operace) musí být volán, aby výjimky opět upustil a vyhnul se selhání
  • Zachycením a uložením všech výjimkových objektů asynchronní metodou může být během volání EndXXX znovu převráceno
  • Ovládací prvky v uživatelském rozhraní, které iniciují dlouhodobé asynchronní operace, musí být zakázány, pokud jsou potřebné pouze pro tento účel
  • Asynchronní metody musí být implementovány s pochopením multithreadingu a tam, kde se ukázaly být efektivnější než použití synchronních metod.