BackgroundWorker.CancelAsync 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.
Aanvraag voor annulering van een in behandeling zijnde achtergrondbewerking.
public:
void CancelAsync();
public void CancelAsync();
member this.CancelAsync : unit -> unit
Public Sub CancelAsync ()
Uitzonderingen
Voorbeelden
In het volgende codevoorbeeld ziet u hoe de CancelAsync methode wordt gebruikt om een asynchrone bewerking ('background') te annuleren. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de BackgroundWorker klasse.
void cancelAsyncButton_Click( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
// Cancel the asynchronous operation.
this->backgroundWorker1->CancelAsync();
// Disable the Cancel button.
cancelAsyncButton->Enabled = false;
}
void cancelAsyncButton_Click(object sender,
EventArgs e)
{
// Cancel the asynchronous operation.
backgroundWorker1.CancelAsync();
// Disable the Cancel button.
cancelAsyncButton.Enabled = false;
}
Private Sub cancelAsyncButton_Click(
ByVal sender As System.Object,
ByVal e As System.EventArgs) _
Handles cancelAsyncButton.Click
' Cancel the asynchronous operation.
backgroundWorker1.CancelAsync()
' Disable the Cancel button.
cancelAsyncButton.Enabled = False
End Sub
Opmerkingen
CancelAsync verzendt een aanvraag om de in behandeling zijnde achtergrondbewerking te beƫindigen en stelt de CancellationPending eigenschap in op true.
Wanneer u aanroept CancelAsync, heeft uw werkmethode de mogelijkheid om de uitvoering ervan te stoppen en af te sluiten. De werkrolcode moet regelmatig de CancellationPending eigenschap controleren om te zien of deze is ingesteld op true.
Caution
Houd er rekening mee dat uw code in de DoWork gebeurtenis-handler het werk kan voltooien als er een annuleringsaanvraag wordt gedaan en dat uw polling-lus mogelijk CancellationPending wordt ingesteld op true. In dit geval wordt de Cancelled vlag van System.ComponentModel.RunWorkerCompletedEventArgs uw RunWorkerCompleted gebeurtenis-handler niet ingesteld op true, ook al is er een annuleringsaanvraag ingediend. Deze situatie wordt een racevoorwaarde genoemd en is een veelvoorkomende zorg bij multithreaded programmeren. Zie Aanbevolen procedures voor beheerde threading voor meer informatie over ontwerpproblemen met meerdere threads.