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
Asynchrones Aufrufen von synchronen Methoden
Erläutert die Verwendung von Delegaten zum asynchronen Aufrufen normaler Methoden und bietet einfache Codebeispiele, in denen die vier Methoden zum Warten auf die Rückgabe asynchroner Aufrufe gezeigt wird.Beispiel für die Programmierung von asynchronen Delegaten
Demonstriert die Verwendung von Delegaten für asynchrone Aufrufe anhand eines schwierigeren Codebeispiels, in dem Zahlen in Faktoren zerlegt werden.
Verwandte Abschnitte
- Entwurfsmuster für die asynchrone Programmierung
Beschreibt die asynchrone Programmierung mit .NET Framework.