AsyncOperation.PostOperationCompleted(SendOrPostCallback, Object) Metoda

Definice

Ukončí životnost asynchronní operace.

public:
 void PostOperationCompleted(System::Threading::SendOrPostCallback ^ d, System::Object ^ arg);
public void PostOperationCompleted(System.Threading.SendOrPostCallback d, object arg);
public void PostOperationCompleted(System.Threading.SendOrPostCallback d, object? arg);
member this.PostOperationCompleted : System.Threading.SendOrPostCallback * obj -> unit
Public Sub PostOperationCompleted (d As SendOrPostCallback, arg As Object)

Parametry

d
SendOrPostCallback

Objekt SendOrPostCallback , který zabalí delegáta, který má být volána při ukončení operace.

arg
Object

Argument delegáta obsaženého v parametru d .

Výjimky

OperationCompleted() byla volána dříve pro tento úkol.

Příklady

Následující příklad kódu ukazuje použití PostOperationCompleted metody k ukončení životnosti asynchronní operace. Tento příklad kódu je součástí většího příkladu uvedeného pro třídu System.ComponentModel.AsyncOperationManager.

// This method cancels a pending asynchronous operation.
public void CancelAsync(object taskId)
{
    if (userStateToLifetime[taskId] is AsyncOperation)
    {
        lock (userStateToLifetime.SyncRoot)
        {
            userStateToLifetime.Remove(taskId);
        }
    }
}
' This method cancels a pending asynchronous operation.
Public Sub CancelAsync(ByVal taskId As Object)

    Dim obj As Object = userStateToLifetime(taskId)
    If (obj IsNot Nothing) Then

        SyncLock userStateToLifetime.SyncRoot

            userStateToLifetime.Remove(taskId)

        End SyncLock

    End If

End Sub

Poznámky

PostOperationCompleted Voláním metody ukončete životnost asynchronní operace. Po volání této metody pro konkrétní úlohu volání do odpovídajícího AsyncOperation objektu vyvolá výjimku.

Parametr d zabalí delegáta, který má vaše třída volat, když životnost úkolu skončí kvůli dokončení, zrušení nebo selhání úkolu. Objekt AsyncOperation zajistí, aby byl váš delegát vyvolán ve vlákně nebo kontextu vhodném pro aplikační model. Delegát může volitelně vyvolat událost, která klientům oznámí, že životnost asynchronního úkolu skončila.

Parametr arg slouží k předání informací o stavu delegátu ddokončení . Jako hodnotu parametru System.ComponentModel.AsyncCompletedEventArgs můžete použít AsyncOperation objekt nebo objekt. Případně pokud chcete poskytnout další úložiště stavu, můžete použít instanci třídy, kterou odvozujete z System.ComponentModel.AsyncCompletedEventArgs třídy.

Poznámky pro dědice

Dědiče musí být PostOperationCompleted(SendOrPostCallback, Object) vyvolání asynchronní, aby se poskytovatelé knihovny tříd nemuseli zabývat potenciálními přetečeními zásobníku, pokud předpokládají asynchrony, ale konkrétní aplikační model bude synchronní. Metoda by se měla interpretovat jako volání "ukončení životnosti", což znamená, že implementace musí udělat to, co je vhodné pro aplikační model. Například ASP.NET sníží počet nevyřízených asynchronních operací. Operace by se také měla umístit do stavu, aby všechna následná volání do ní selhala, protože se dokončila.

Další informace o implementaci asynchronních tříd naleznete v tématu Implementace asynchronního vzoru založeného na událostech.

Platí pro

Viz také