Wywołanie metody asynchronicznej

Autor: Lewis Jackson
Data Utworzenia: 8 Móc 2021
Data Aktualizacji: 24 Czerwiec 2024
Anonim
36 - Using Asynchronous Method Invocation in Session Beans
Wideo: 36 - Using Asynchronous Method Invocation in Session Beans

Zawartość

Definicja - Co oznacza asynchroniczne wywołanie metody?

Asynchroniczne wywołanie metody to metoda używana w programowaniu .NET, która wraca do programu wywołującego bezpośrednio przed zakończeniem przetwarzania i bez blokowania wątku wywołującego.

Gdy aplikacja wywołuje metodę asynchroniczną, może jednocześnie wykonywać ją wraz z wykonywaniem metody asynchronicznej, która wykonuje swoje zadanie. Metoda asynchroniczna działa w wątku innym niż główny wątek aplikacji. Wyniki przetwarzania są pobierane przez inne wywołanie w innym wątku.

Metody asynchroniczne pomagają zoptymalizować wykonanie zasobów, co skutkuje skalowalną aplikacją. Służą one do wykonywania czasochłonnych zadań, takich jak otwieranie dużych plików, łączenie się ze zdalnymi komputerami, sprawdzanie bazy danych, wywoływanie usług sieciowych i formularzy internetowych ASP.NET.

Wywołanie metody asynchronicznej może być również nazywane wywoływaniem metody asynchronicznej (AMI).


Wprowadzenie do Microsoft Azure i Microsoft Cloud | W tym przewodniku dowiesz się, na czym polega przetwarzanie w chmurze i jak Microsoft Azure może pomóc w migracji i prowadzeniu firmy z chmury.

Techopedia wyjaśnia asynchroniczne wywołanie metody

Metoda asynchroniczna różni się od metody synchronicznej sposobem, w jaki powraca z wywołania. Podczas gdy asynchroniczne wywołanie metody natychmiast powraca, umożliwiając programowi wywołującemu wykonywanie innych operacji, synchroniczne wywołania metod czekają na zakończenie metody przed kontynuowaniem przepływu programu.

Środowisko .NET ma wbudowaną infrastrukturę asynchroniczną, dzięki czemu można wywoływać dowolną metodę bez zmiany kodu.

.NET Framework udostępnia dwa wzorce projektowe do implementacji metody asynchronicznej, które wykorzystują asynchroniczne obiekty delegowane (obiekty IASyncResult) i zdarzenia. Asynchroniczny wzorzec delegatów jest bardziej złożony i zapewnia elastyczność, co czyni go dobrze dostosowanym do różnych złożonych modeli programowania. Model oparty na zdarzeniach jest prosty i powinien być używany w większości przypadków.

We wzorcu asynchronicznych delegatów obiekt delegowany używa dwóch metod: BeginInvoke i EndInvoke. BeginInvoke ma listę parametrów, które są podobne do jego zawiniętej funkcji, wraz z dwoma dodatkowymi parametrami opcjonalnymi; zwraca obiekt IAsyncResult. EndInvoke zwraca dwa parametry (typ out i ref) wraz z obiektem IAsyncResult. BeginInvoke służy do inicjowania wywołania asynchronicznego, natomiast EndInvoke służy do pobierania wyników wywołania asynchronicznego.

Wzorce asynchroniczne oparte na zdarzeniach używają klasy, która ma jedną lub więcej metod o nazwie MethodNameAsync, które mają odpowiednie wersje synchroniczne, które działają w bieżącym wątku. Wzorce oparte na zdarzeniach mogą również mieć zdarzenie MethodNameCompleted i MethodNameAsyncCancel. Ten wzorzec umożliwia klasie komunikowanie się z oczekującymi operacjami asynchronicznymi przy użyciu modelu zdarzeń delegowanych.

Oto kilka wskazówek związanych z metodami asynchronicznymi:


  • Aby uzyskać wysoką współbieżność, należy unikać metod asynchronicznych
  • Należy zachować ostrożność podczas przekazywania odwołań do obiektów współdzielonych
  • Należy wywołać EndXXX (wywoływany pod koniec operacji asynchronicznej), aby odrzucić wyjątki i uniknąć awarii
  • Łapiąc i zapisując wszystkie obiekty wyjątków w metodzie asynchronicznej, można je ponownie wyrzucić podczas wywołania EndXXX
  • Elementy sterujące w interfejsie użytkownika, które inicjują długotrwałe operacje asynchroniczne, muszą być wyłączone, jeśli są potrzebne tylko do tego celu
  • Metody asynchroniczne muszą być wdrażane ze zrozumieniem wielowątkowości i tam, gdzie okazują się bardziej wydajne niż metody synchroniczne.