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;
}
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

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 durdurma ve çıkış yapma 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 DoWork kodunuzun bir iptal isteği yapılırken çalışmasını tamamlayaabileceğ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 bir 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.