AsyncOperation.PostOperationCompleted(SendOrPostCallback, Object) Metod

Definition

Avslutar livslängden för en asynkron åtgärd.

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)

Parametrar

d
SendOrPostCallback

Ett SendOrPostCallback objekt som omsluter ombudet som ska anropas när åtgärden avslutas.

arg
Object

Ett argument för ombudet som finns i parametern d .

Undantag

OperationCompleted() har anropats tidigare för den här uppgiften.

d är null.

Exempel

Följande kodexempel visar hur du använder PostOperationCompleted metoden för att avsluta livslängden för en asynkron åtgärd. Det här kodexemplet är en del av ett större exempel för System.ComponentModel.AsyncOperationManager klassen.

// 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

Kommentarer

PostOperationCompleted Anropa metoden för att avsluta livslängden för en asynkron åtgärd. När den här metoden anropas för en viss aktivitet genereras ett undantag vid anrop till motsvarande AsyncOperation objekt.

Parametern d omsluter det ombud som du vill att klassen ska anropa när aktivitetens livslängd upphör på grund av slutförande, annullering eller fel i aktiviteten. Objektet AsyncOperation ser till att ombudet anropas i tråden eller kontexten som är lämplig för programmodellen. Ombudet kan också skapa en händelse som meddelar klienter att den asynkrona aktivitetens livslängd har upphört.

Parametern arg används för att skicka tillståndsinformation till slutförandedelegaten d. Du kan använda ett AsyncOperation objekt eller ett System.ComponentModel.AsyncCompletedEventArgs objekt som parametervärde. Om du vill tillhandahålla ytterligare tillståndslagring kan du också använda en instans av en klass som du härleder från System.ComponentModel.AsyncCompletedEventArgs klassen.

Anteckningar till arvingar

Arvtagarna måste göra anropet PostOperationCompleted(SendOrPostCallback, Object) asynkront, så att klassbiblioteksprovidrar inte behöver bry sig om potentiella stackspill om de antar asynkront men en viss programmodell råkar vara synkron. Metoden ska tolkas som ett "slut på livslängden", vilket innebär att implementeringen måste göra det som är lämpligt för programmodellen. Till exempel minskar ASP.NET antalet utestående asynkrona åtgärder. Detta bör också försätta åtgärden i ett tillstånd som gör att eventuella efterföljande anrop till den misslyckas, eftersom den nu har slutförts.

Mer information om hur du implementerar asynkrona klasser finns i Implementera det händelsebaserade asynkrona mönstret.

Gäller för

Se även