BackgroundWorker.CancelAsync Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Demande l’annulation d’une opération en arrière-plan en attente.
public:
void CancelAsync();
public void CancelAsync();
member this.CancelAsync : unit -> unit
Public Sub CancelAsync ()
Exceptions
WorkerSupportsCancellation a la valeur false.
Exemples
L’exemple de code suivant illustre l’utilisation de la CancelAsync méthode pour annuler une opération asynchrone (« arrière-plan »). Cet exemple de code fait partie d’un exemple plus grand fourni pour la BackgroundWorker classe.
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
Remarques
CancelAsync envoie une demande pour mettre fin à l’opération en arrière-plan en attente et définit la CancellationPending propriété truesur .
Lorsque vous appelez CancelAsync, votre méthode worker a la possibilité d’arrêter son exécution et de quitter. Le code worker doit vérifier régulièrement la CancellationPending propriété pour voir si elle a été définie truesur .
Avertissement
N’oubliez pas que votre code dans le DoWork gestionnaire d’événements peut terminer son travail en tant que demande d’annulation en cours d’exécution, et que votre boucle d’interrogation peut manquer CancellationPending d’être définie truesur . Dans ce cas, l’indicateur Cancelled de votre RunWorkerCompleted gestionnaire d’événements System.ComponentModel.RunWorkerCompletedEventArgs n’est pas défini truesur , même si une demande d’annulation a été effectuée. Cette situation est appelée une condition de concurrence et est une préoccupation commune dans la programmation multithread. Pour plus d’informations sur les problèmes de conception multithreading, consultez Les meilleures pratiques en matière de threads managés.