Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Delegaty umożliwiają wywoływanie metody synchronicznej w sposób asynchroniczny. Podczas synchronicznego wywołania delegata metoda Invoke
bezpośrednio wywołuje metodę docelową na bieżącym wątku.
BeginInvoke
Jeśli metoda jest wywoływana, środowisko uruchomieniowe języka wspólnego (CLR) kolejkuje żądanie i zwraca natychmiast do elementu wywołującego. Metoda docelowa jest wywoływana asynchronicznie w wątku z puli wątków. Oryginalny wątek, który przesłał żądanie, może kontynuować wykonywanie równolegle z metodą docelową. Jeśli metoda wywołania zwrotnego została określona w wywołaniu BeginInvoke
metody , metoda wywołania zwrotnego jest wywoływana po zakończeniu metody docelowej. W metodzie wywołania zwrotnego, metoda EndInvoke
uzyskuje wartość zwracaną oraz wszelkie parametry wejściowo-wyjściowe lub tylko wyjściowe. Jeśli nie określono metody wywołania zwrotnego podczas wywoływania BeginInvoke
, EndInvoke
można wywołać z wątku, który wywołał BeginInvoke
.
Ważne
Kompilatory powinny emitować klasy delegatów z metodami Invoke
, BeginInvoke
i EndInvoke
przy użyciu podpisu delegowanego określonego przez użytkownika. Metody BeginInvoke
i EndInvoke
powinny być oznaczone jako natywne. Ponieważ te metody są oznaczone jako natywne, clR automatycznie zapewnia implementację w czasie ładowania klasy. Moduł ładujący gwarantuje, że nie zostaną one zastąpione.
W tej Sekcji
Wywoływanie metod synchronicznych asynchronicznie
Omawia użycie delegatów do wykonywania wywołań asynchronicznych za pomocą zwykłych metod i zawiera proste przykłady kodu, które pokazują cztery sposoby oczekiwania na zwrócenie wyniku wywołania asynchronicznego.
Powiązane sekcje
Asynchroniczny wzorzec oparty na zdarzeniach (EAP)
Opisuje programowanie asynchroniczne na platformie .NET.