Freigeben über


Asynchrone Programmierung mithilfe von Delegaten

Aktualisiert: November 2007

Asynchrone Delegaten bieten die Möglichkeit, synchrone Methoden asynchron aufzurufen. Wenn ein Delegat synchron aufgerufen wird, ruft die Invoke-Methode die Zielmethode direkt im aktuellen Thread auf. Sobald die BeginInvoke-Methode aufgerufen wurde, fügt die Common Language Runtime (CLR) die Anforderung in die Warteschlange ein und kehrt sofort zum Aufrufer zurück. Die Zielmethode wird für einen Thread asynchron aus dem Threadpool aufgerufen. Der ursprüngliche Thread, der die Anforderung übergeben hat, kann weiterhin auf parallele Weise für die Zielmethode ausgeführt werden. Wenn im Aufruf der BeginInvoke-Methode eine Rückrufmethode angegeben wurde, wird diese beim Zurückgeben der Zielmethode aufgerufen. Die EndInvoke-Methode wird bei der Rückrufmethode dazu verwendet, den Rückgabewert und die Input/Output- oder nur Output-Parameter abzurufen. Wenn beim Aufrufen von BeginInvoke keine Rückrufmethode angegeben ist, kann EndInvoke von dem Thread aufgerufen werden, der BeginInvoke aufgerufen hat.

Wichtiger Hinweis:

Compiler sollten Delegatklassen mit den Methoden Invoke, BeginInvoke und EndInvoke ausgeben und dabei die vom Benutzer angegebene Delegatsignatur verwenden. Die BeginInvoke-Methode und die EndInvoke-Methode sollten als systemeigen ergänzt werden. Da diese Methoden als systemeigene Methoden gekennzeichnet sind, stellt die Common Language Runtime die Implementierung beim Laden der Klasse automatisch bereit. Das Lademodul stellt dabei sicher, dass die Methoden nicht überschrieben werden.

In diesem Abschnitt

Verwandte Abschnitte

Siehe auch

Referenz

Delegate