BackgroundWorker.CancelAsync BackgroundWorker.CancelAsync BackgroundWorker.CancelAsync BackgroundWorker.CancelAsync Method

定義

保留中のバックグラウンド操作のキャンセルを要求します。Requests cancellation of a pending background operation.

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

例外

次のコード例は、の使用を示します、CancelAsync非同期の (「バック グラウンド」) の操作をキャンセルするメソッド。The following code example demonstrates the use of the CancelAsync method to cancel an asynchronous ("background") operation. このコード例が示されている例の一部、BackgroundWorkerクラス。This code example is part of a larger example provided for the BackgroundWorker class.

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 'cancelAsyncButton_Click

注釈

CancelAsync 保留中のバック グラウンド操作を終了する要求を送信し、設定、CancellationPendingプロパティをtrueします。CancelAsync submits a request to terminate the pending background operation and sets the CancellationPending property to true.

呼び出すとCancelAsync、ワーカー メソッドの実行と終了を停止する機会が。When you call CancelAsync, your worker method has an opportunity to stop its execution and exit. ワーカーのコードを定期的に確認する必要があります、CancellationPendingプロパティ設定されていることを確認してtrueします。The worker code should periodically check the CancellationPending property to see if it has been set to true.

注意事項

注意してくださいをコードで、DoWorkイベント ハンドラーはキャンセル要求にされていると、ポーリング ループを見逃す可能性がありますが作業を完了可能性がありますCancellationPendingに設定されているtrueします。Be aware that your code in the DoWork event handler may finish its work as a cancellation request is being made, and your polling loop may miss CancellationPending being set to true. ここで、CancelledフラグSystem.ComponentModel.RunWorkerCompletedEventArgsで、RunWorkerCompletedイベント ハンドラーは設定されませんtrueキャンセル要求が行われた場合でも。In this case, the Cancelled flag of System.ComponentModel.RunWorkerCompletedEventArgs in your RunWorkerCompleted event handler will not be set to true, even though a cancellation request was made. このような状況と呼ばれる、競合状態はマルチ スレッド プログラミングの一般的な懸念事項とします。This situation is called a race condition and is a common concern in multithreaded programming. マルチ スレッド デザインの詳細については、問題を参照してくださいManaged Threading Best Practicesします。For more information about multithreading design issues, see Managed Threading Best Practices.

適用対象

こちらもご覧ください