Freigeben über


Asynchrone Programmierung mit Stellvertretungen

Delegaten bieten die Möglichkeit, synchrone Methoden in asynchroner Weise aufzurufen. Wenn Sie einen Delegaten synchron aufrufen, ruft die Invoke Methode die Zielmethode direkt im aktuellen Thread auf. Wenn die BeginInvoke Methode aufgerufen wird, wird die Anforderung von der Common Language Runtime (CLR) in die Warteschlange gestellt und sofort an den Aufrufer zurückgegeben. Die Zielmethode wird asynchron für einen Thread aus dem Threadpool aufgerufen. Der ursprüngliche Thread, der die Anforderung übermittelt hat, kann parallel zur Zielmethode weiterhin ausgeführt werden. Wenn im Aufruf der BeginInvoke Methode eine Rückrufmethode angegeben wurde, wird die Rückrufmethode aufgerufen, wenn die Zielmethode endet. In der Rückruffunktion ermittelt die EndInvoke Methode den Rückgabewert und alle Eingabe-/Ausgabe- oder nur Ausgabeparameter. Wenn beim Aufrufen BeginInvokekeine Rückrufmethode angegeben wird, EndInvoke kann aus dem aufgerufenen BeginInvokeThread aufgerufen werden.

Von Bedeutung

Compiler sollten Delegatklassen mit Invoke, BeginInvoke und EndInvoke Methoden unter Verwendung der vom Benutzer angegebenen Signatur des Delegaten ausgeben. Die Methoden BeginInvoke und EndInvoke sollten als systemeigen dekoriert werden. Da diese Methoden als nativ gekennzeichnet sind, stellt die CLR die Implementierung automatisch zum Ladezeitpunkt der Klasse bereit. Das Ladeprogramm stellt sicher, dass die Methoden nicht überschrieben werden.

In diesem Abschnitt

Asynchrones Aufrufen von synchronen Methoden
Erläutert die Verwendung von Delegaten, um asynchrone Aufrufe an gewöhnliche Methoden zu tätigen, und enthält einfache Codebeispiele, die die vier Möglichkeiten zeigen, wie man auf die Rückkehr eines asynchronen Aufrufs wartet.

Ereignisbasiertes asynchrones Muster (EAP)
Beschreibt die asynchrone Programmierung in .NET.

Siehe auch