BackgroundWorker.CancelAsync Methode

Definitie

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.

Van toepassing op

Zie ook