Aracılığıyla paylaş


BackgroundWorker.CancelAsync Yöntem

Tanım

Bekleyen bir arka plan işleminin iptalini istemektedir.

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

Özel durumlar

Örnekler

Aşağıdaki kod örneği, zaman uyumsuz ("arka plan") işlemini iptal etmek için yönteminin kullanımını CancelAsync gösterir. Bu kod örneği, sınıfı için BackgroundWorker sağlanan daha büyük bir örneğin parçasıdır.

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

Açıklamalar

CancelAsyncbekleyen arka plan işlemini sonlandırmak için bir istek gönderir ve özelliğini olarak trueayarlarCancellationPending.

çağırdığınızda CancelAsync, çalışan yönteminizin yürütmesini ve çıkışını durdurma fırsatı vardır. Çalışan kodu, özelliğinin CancellationPending olarak ayarlandığını truegörmek için özelliği düzenli aralıklarla denetlemelidir.

Dikkat

Olay işleyicisindeki kodunuzun DoWork iptal isteği yapılırken çalışmasını bitirebileceğini ve yoklama döngünüzün olarak ayarlanmasını truekaçırabileceğini CancellationPending unutmayın. Bu durumda, Cancelled bir iptal isteği yapılmış olsa bile olay işleyicinizdeki RunWorkerCompleted bayrağı System.ComponentModel.RunWorkerCompletedEventArgs olarak ayarlanmaztrue. Bu durum yarış durumu olarak adlandırılır ve çok iş parçacıklı programlamada yaygın bir sorundur. Çok iş parçacıklı tasarım sorunları hakkında daha fazla bilgi için bkz. Yönetilen İş Parçacığı Oluşturma En İyi Yöntemleri.

Şunlara uygulanır

Ayrıca bkz.