本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

BackgroundWorker.CancelAsync 方法 ()

 

要求取消暫止的背景作業。

命名空間:   System.ComponentModel
組件:  System (於 System.dll)

public void CancelAsync()

CancelAsync 提交要求以終止擱置的背景作業,並設定 CancellationPending 屬性 true

當您呼叫 CancelAsync, ,工作者方法,有機會先停止它的執行和結束。 背景工作的程式碼應該定期檢查 CancellationPending 屬性是否將它設定 true

System_CAPS_caution注意

請注意,您的程式碼 DoWork 事件處理常式可能會完成其工作正在進行的取消要求,以及輪詢迴圈可能會遺失 CancellationPending 設為 true 在此情況下, Cancelled 旗標 System.ComponentModel.RunWorkerCompletedEventArgs 中您 RunWorkerCompleted 事件處理常式不能設定為 true, ,即使已取消要求。 這種情況稱為 競爭的情況 和多執行緒程式設計中是常見的問題。 如需多執行緒設計問題,請參閱 Managed Threading Best Practices

下列程式碼範例示範如何使用 CancelAsync 方法來取消非同步 (「 背景 」) 作業。 這個程式碼範例會提供範例的一部分 BackgroundWorker 類別。

private void cancelAsyncButton_Click(System.Object sender, 
    System.EventArgs e)
{   
    // Cancel the asynchronous operation.
    this.backgroundWorker1.CancelAsync();

    // Disable the Cancel button.
    cancelAsyncButton.Enabled = false;
}

通用 Windows 平台
自 10 起供應
.NET Framework
自 2.0 起供應
Silverlight
自 2.0 起供應
Windows Phone Silverlight
自 7.0 起供應
回到頁首
顯示: