Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

AsyncOperation.PostOperationCompleted-Methode

Beendet die Lebensdauer eines asynchronen Vorgangs.

Namespace:  System.ComponentModel
Assembly:  System (in System.dll)
public void PostOperationCompleted(
	SendOrPostCallback d,
	Object arg
)

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.


// This method cancels a pending asynchronous operation.
public void CancelAsync(object taskId)
{
    AsyncOperation asyncOp = userStateToLifetime[taskId] as AsyncOperation;
    if (asyncOp != null)
    {   
        lock (userStateToLifetime.SyncRoot)
        {
            userStateToLifetime.Remove(taskId);
        }
    }
}


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

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.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ