AsyncOperation.PostOperationCompleted(SendOrPostCallback, Object) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
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.
d is null.
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
- AsyncOperationManager
- Aanbevolen procedures voor beheerd draadbeheer
- Procedure: Een onderdeel implementeren dat het Asynchrone patroon op basis van gebeurtenissen ondersteunt