ISynchronizeInvoke Interfejs

Definicja

Zapewnia sposób synchronicznego lub asynchronicznego wykonywania delegata.

public interface class ISynchronizeInvoke
public interface ISynchronizeInvoke
type ISynchronizeInvoke = interface
Public Interface ISynchronizeInvoke
Pochodne

Uwagi

Interfejs ISynchronizeInvoke zapewnia synchroniczną i asynchroniczną komunikację między obiektami dotyczącymi wystąpienia zdarzenia. Obiekty implementujące ten interfejs mogą otrzymywać powiadomienia o wystąpieniu zdarzenia i mogą odpowiadać na zapytania dotyczące zdarzenia. W ten sposób klienci mogą upewnić się, że jedno żądanie zostało przetworzone przed przesłaniem kolejnego żądania, które zależy od ukończenia pierwszego.

Klasa ISynchronizeInvoke udostępnia dwa sposoby wywoływania procesu:

  1. Asynchronicznie przy użyciu BeginInvoke metody . BeginInvoke uruchamia proces, a następnie zwraca natychmiast. Użyj EndInvoke polecenia , aby poczekać na zakończenie BeginInvoke procesu.

  2. Synchronicznie przy użyciu Invoke metody . Invoke uruchamia proces, czeka, aż zostanie ukończony, a następnie powróci. Użyj Invoke polecenia , gdy główny wątek kontrolki różni się od wątku wywołującego, aby przeprowadzić wywołanie do odpowiedniego wątku.

Uwaga

Atrybut HostProtectionAttribute zastosowany do tej klasy ma następującą Resources wartość właściwości: Synchronization | ExternalThreading. Atrybut HostProtectionAttribute nie ma wpływu na aplikacje pulpitu (które typowo są uruchamiane przez dwukrotne kliknięcie ikony, wpisanie polecenia albo wprowadzenie adresu URL w przeglądarce). Aby uzyskać więcej informacji, zobacz klasę HostProtectionAttribute lub SQL Server Programowanie i atrybuty ochrony hosta.

Właściwości

InvokeRequired

Pobiera wartość wskazującą, czy obiekt wywołujący musi wywołać wywołanie Invoke(Delegate, Object[]) podczas wywoływania obiektu, który implementuje ten interfejs.

Metody

BeginInvoke(Delegate, Object[])

Asynchronicznie wykonuje delegata w wątku, który utworzył ten obiekt.

EndInvoke(IAsyncResult)

Czeka na zakończenie procesu, BeginInvoke(Delegate, Object[]) a następnie zwraca wartość wygenerowaną przez proces.

Invoke(Delegate, Object[])

Synchronicznie wykonuje delegata w wątku, który utworzył ten obiekt i wykonuje wywołanie do wątku tworzenia.

Dotyczy

Zobacz też