Bagikan melalui


BackgroundWorker.CancelAsync Metode

Definisi

Meminta pembatalan operasi latar belakang yang tertunda.

public:
 void CancelAsync();
public void CancelAsync ();
member this.CancelAsync : unit -> unit
Public Sub CancelAsync ()

Pengecualian

Contoh

Contoh kode berikut menunjukkan penggunaan CancelAsync metode untuk membatalkan operasi asinkron ("latar belakang"). Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk BackgroundWorker kelas .

void cancelAsyncButton_Click( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
{  
   // Cancel the asynchronous operation.
   this->backgroundWorker1->CancelAsync();
   
   // Disable the Cancel button.
   cancelAsyncButton->Enabled = false;
}
private void cancelAsyncButton_Click(System.Object sender, 
    System.EventArgs e)
{   
    // Cancel the asynchronous operation.
    this.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.
    Me.backgroundWorker1.CancelAsync()

    ' Disable the Cancel button.
    cancelAsyncButton.Enabled = False
    
End Sub

Keterangan

CancelAsync mengirimkan permintaan untuk mengakhiri operasi latar belakang yang tertunda dan mengatur CancellationPending properti ke true.

Ketika Anda memanggil CancelAsync, metode pekerja Anda memiliki kesempatan untuk menghentikan eksekusi dan keluar. Kode pekerja harus secara berkala memeriksa CancellationPending properti untuk melihat apakah telah diatur ke true.

Perhatian

Ketahuilah bahwa kode Anda di DoWork penanganan aktivitas dapat menyelesaikan pekerjaannya karena permintaan pembatalan sedang dibuat, dan perulangan polling Anda mungkin melewatkan CancellationPending diatur ke true. Dalam hal ini, Cancelled bendera System.ComponentModel.RunWorkerCompletedEventArgs di penanganan aktivitas Anda RunWorkerCompleted tidak akan diatur ke true, meskipun permintaan pembatalan dibuat. Situasi ini disebut kondisi balapan dan menjadi perhatian umum dalam pemrograman multithreaded. Untuk informasi selengkapnya tentang masalah desain multithreading, lihat Praktik Terbaik Utas Terkelola.

Berlaku untuk

Lihat juga