亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

如何在WinForm中實現異步任務的取消與中斷

小樊
121
2024-08-21 12:19:30
欄目: 智能運維

要在WinForm中實現異步任務的取消和中斷,可以使用CancellationToken來實現。以下是一種通用的方法:

  1. 首先,在WinForm界面中創建一個取消按鈕,當用戶點擊此按鈕時,觸發取消操作。

  2. 創建一個CancellationTokenSource對象,并將其Token屬性傳遞給異步任務方法。

  3. 在異步任務方法中,定期檢查CancellationToken的IsCancellationRequested屬性,如果為true,則拋出OperationCanceledException異常來中斷任務。

  4. 在取消按鈕的Click事件處理程序中,調用CancellationTokenSource的Cancel方法來取消任務。

下面是一個簡單的示例代碼:

private CancellationTokenSource cancellationTokenSource;

private async void StartAsyncTask()
{
    cancellationTokenSource = new CancellationTokenSource();
    
    try
    {
        await Task.Run(() =>
        {
            for (int i = 0; i < 100; i++)
            {
                // 檢查取消標記
                if (cancellationTokenSource.Token.IsCancellationRequested)
                {
                    throw new OperationCanceledException();
                }
                
                // 執行異步任務
                // 例如:Thread.Sleep(1000);
            }
        }, cancellationTokenSource.Token);
    }
    catch (OperationCanceledException)
    {
        // 任務被取消
        MessageBox.Show("任務已取消");
    }
}

private void btnCancel_Click(object sender, EventArgs e)
{
    if (cancellationTokenSource != null)
    {
        cancellationTokenSource.Cancel();
    }
}

在上面的示例中,StartAsyncTask方法啟動一個異步任務,并在每次循環中檢查取消標記。取消按鈕的Click事件處理程序調用Cancel方法取消任務。當任務被取消時,會捕獲OperationCanceledException異常并顯示一個消息框。

0
资阳市| 平湖市| 长沙市| 灵川县| 霍林郭勒市| 宜春市| 宁都县| 平遥县| 无锡市| 若尔盖县| 吉首市| 广元市| 阳信县| 凭祥市| 育儿| 遂昌县| 灵川县| 武定县| 四平市| 利川市| 成都市| 深水埗区| 海原县| 大宁县| 虎林市| 双鸭山市| 莱州市| 平和县| 长沙县| 仁寿县| 瓦房店市| 离岛区| 西城区| 洛浦县| 六盘水市| 澄迈县| 怀仁县| 屯门区| 霞浦县| 民丰县| 图木舒克市|