Freigeben über


Asynchrone Delegaten

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. Wenn der Compiler asynchrone Delegaten unterstützt, erzeugt er die Invoke-Methode sowie die BeginInvoke-Methode und die EndInvoke-Methode. Sobald die BeginInvoke-Methode aufgerufen wurde, fügt die Common Language Runtime die Anforderung in die Warteschlange ein und kehrt sofort zum Aufrufer zurück. Die Zielmethode wird für einen Thread aus dem Threadpool aufgerufen. Der ursprüngliche Thread, durch den die Anforderung gesendet wurde, kann weiterhin parallel zu der über einen Threadpoolthread laufenden Zielmethode ausgeführt werden. Wenn im Rahmen von BeginInvoke ein Rückruf festgelegt wurde, so wird dieser aufgerufen, sobald die Target-Methode zurückgegeben wird. Die EndInvoke-Methode wird im Rückruf dazu verwendet, den Rückgabewert und die In/Out-Parameter bereitzustellen. Wenn der Rückruf nicht für BeginInvoke festgelegt wurde, kann EndInvoke für den ursprünglichen Thread, der die Anforderung gesendet hat, verwendet werden.

Hinweis   Der Microsoft C#-Compiler unterstützt derzeit asynchrone Delegaten.

In diesem Abschnitt

Verwandte Abschnitte