Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
AsyncOperation.PostOperationCompleted-Methode
Beendet die Lebensdauer eines asynchronen Vorgangs.
Assembly: System (in System.dll)
Parameter
- d
- Typ: System.Threading.SendOrPostCallback
Ein SendOrPostCallback-Objekt, das den am Ende des Vorgangs aufzurufenden Delegaten umschließt.
- arg
- Typ: System.Object
Ein Argument für den Delegaten, der im d-Parameter enthalten ist.
| Ausnahme | Bedingung |
|---|---|
| InvalidOperationException |
OperationCompleted wurde vorher für diese Aufgabe aufgerufen. |
| ArgumentNullException |
d ist null. |
Rufen Sie die PostOperationCompleted-Methode auf, um die Lebensdauer eines asynchronen Vorgangs zu beenden. Nachdem diese Methode für eine bestimmte Aufgabe aufgerufen wurde, lösen Aufrufe des entsprechenden AsyncOperation-Objekts eine Ausnahme aus.
Der d-Parameter umschließt den Delegaten, den die Klasse aufrufen soll, wenn die Dauer der Aufgabe nach Abschluss, Abbruch oder Auftreten von Fehlern endet. Das AsyncOperation-Objekt stellt sicher, dass der Delegat auf dem Thread oder im Kontext aufgerufen wird, der für das Anwendungsmodell geeignet ist. Der Delegat kann optional ein Ereignis auslösen, das die Clients darüber benachrichtigt, dass die Lebensdauer der asynchronen Aufgabe beendet ist.
Der arg-Parameter wird verwendet, um Zustandsinformationen an den Abschlussdelegat d zu übergeben. Sie können ein AsyncOperation-Objekt oder ein System.ComponentModel.AsyncCompletedEventArgs-Objekt als Parameterwert verwenden. Wenn Sie zusätzlichen Zustandsspeicher bereitstellen möchten, können Sie auch alternativ eine Instanz einer Klasse verwenden, die von der System.ComponentModel.AsyncCompletedEventArgs-Klasse abgeleitet wird.
Hinweise zur Vererbung
In einer Implementierung muss PostOperationCompleted asynchron aufgerufen werden, damit Klassenbibliothekanbieter sich nicht mit möglichen Stapelüberläufen beschäftigen müssen, wenn sie von einem asynchronen Verhalten ausgehen, ein bestimmtes Anwendungsmodell sich jedoch als synchron herausstellt. Die Methode muss als "Aufruf zur Beendigung der Lebensdauer" verstanden werden, was bedeutet, dass die Implementierung den für das Anwendungsmodell geeigneten Vorgang ausführen muss. Zum Beispiel verringert ASP.NET die Anzahl ausstehender asynchroner Vorgänge. Dadurch soll der Vorgang in einen solchen Zustand versetzt werden, dass alle folgenden Aufrufe fehlschlagen, weil er jetzt beendet ist.
Weitere Informationen über das Implementieren von asynchronen Klassen finden Sie unter Implementieren des ereignisbasierten asynchronen Entwurfsmusters.
Im folgenden Codebeispiel wird die Verwendung der PostOperationCompleted-Methode zum Beenden der Lebensdauer eines asynchronen Vorgangs veranschaulicht. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die System.ComponentModel.AsyncOperationManager-Klasse.
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.