中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

如何在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
紫云| 西安市| 黄平县| 宁安市| 当涂县| 贞丰县| 陵川县| 含山县| 丹东市| 延川县| 贵阳市| 合江县| 伊金霍洛旗| 永吉县| 皮山县| 长丰县| 红河县| 乡宁县| 揭阳市| 昌吉市| 鸡西市| 苍梧县| 绿春县| 丹巴县| 津南区| 东丽区| 霍州市| 兴和县| 巴林右旗| 宁河县| 页游| 江达县| 中山市| 五华县| 商水县| 沙坪坝区| 宝丰县| 淮北市| 桃园县| 习水县| 大冶市|