AsyncOperation.PostOperationCompleted(SendOrPostCallback, Object) Methode

Definitie

Hiermee wordt de levensduur van een asynchrone bewerking beëindigd.

public:
 void PostOperationCompleted(System::Threading::SendOrPostCallback ^ d, System::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)

Parameters

d
SendOrPostCallback

Een SendOrPostCallback object dat de gemachtigde terugloopt die moet worden aangeroepen wanneer de bewerking wordt beëindigd.

arg
Object

Een argument voor de gemachtigde in de d parameter.

Uitzonderingen

OperationCompleted() is eerder aangeroepen voor deze taak.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de methode gebruikt om de PostOperationCompleted levensduur van een asynchrone bewerking te beëindigen. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de System.ComponentModel.AsyncOperationManager klasse.

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

Opmerkingen

Roep de PostOperationCompleted methode aan om de levensduur van een asynchrone bewerking te beëindigen. Nadat deze methode is aangeroepen voor een bepaalde taak, worden aanroepen naar het bijbehorende AsyncOperation object een uitzondering gegenereerd.

De d parameter verpakt de gemachtigde die u wilt aanroepen wanneer de levensduur van de taak afloopt vanwege voltooiing, annulering of fout van de taak. Het AsyncOperation object zorgt ervoor dat uw gemachtigde wordt aangeroepen op de thread of context die geschikt is voor het toepassingsmodel. Uw gedelegeerde kan eventueel een gebeurtenis genereren waarmee clients worden op de hoogte gebracht dat de levensduur van de asynchrone taak is beëindigd.

De arg parameter wordt gebruikt om statusgegevens door te geven aan de voltooiingsdelegen d. U kunt een AsyncOperation object of een System.ComponentModel.AsyncCompletedEventArgs object gebruiken als parameterwaarde. Als u aanvullende statusopslag wilt bieden, kunt u ook een exemplaar van een klasse gebruiken die u hebt afgeleid van de System.ComponentModel.AsyncCompletedEventArgs klasse.

Notities voor overnemers

Overnames moeten de PostOperationCompleted(SendOrPostCallback, Object) aanroep asynchroon maken, zodat klassebibliotheekproviders zich niet hoeven bezig te houden met potentiële stack-overloop als ze asynchroon aannemen, maar een bepaald toepassingsmodel synchroon is. De methode moet worden geïnterpreteerd als een aanroep voor het beëindigen van de levensduur, wat betekent dat de implementatie moet doen wat geschikt is voor het toepassingsmodel. ASP.NET zal bijvoorbeeld het aantal openstaande asynchrone bewerkingen verlagen. Hierdoor moet de bewerking ook in een toestand worden geplaatst, zodat alle volgende aanroepen in de bewerking mislukken, omdat deze nu is voltooid.

Zie Het Asynchrone patroon op basis van gebeurtenissen implementeren voor meer informatie over het implementeren van asynchrone klassen.

Van toepassing op

Zie ook