91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c# continuewith能取消任務嗎

c#
小樊
81
2024-11-26 16:17:25
欄目: 編程語言

在C#中,ContinueWith方法用于在任務完成后執行另一個任務。然而,ContinueWith本身并不能取消前一個任務。要取消一個任務,你需要使用CancellationTokenTask.Run方法。

下面是一個示例,展示了如何使用CancellationToken取消一個任務:

using System;
using System.Threading;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        CancellationTokenSource cts = new CancellationTokenSource();
        CancellationToken token = cts.Token;

        Task task = Task.Run(() =>
        {
            for (int i = 0; i < 10; i++)
            {
                if (token.IsCancellationRequested)
                {
                    Console.WriteLine("任務被取消");
                    return;
                }

                Console.WriteLine("任務執行中: " + i);
                Thread.Sleep(1000);
            }
        }, token);

        // 在5秒后取消任務
        cts.CancelAfter(5000);

        try
        {
            task.Wait();
        }
        catch (AggregateException ae)
        {
            foreach (var e in ae.InnerExceptions)
            {
                if (e is OperationCanceledException)
                {
                    Console.WriteLine("任務被取消");
                }
                else
                {
                    Console.WriteLine("任務發生異常: " + e.Message);
                }
            }
        }
    }
}

在這個示例中,我們創建了一個CancellationTokenSource對象,并將其傳遞給Task.Run方法。我們還傳遞了一個CancellationToken對象,以便在需要時取消任務。然后,我們在5秒后調用cts.CancelAfter方法來取消任務。最后,我們使用try-catch塊捕獲AggregateException異常,以便在任務被取消時正確處理。

0
商都县| 昌图县| 铜陵市| 耿马| 乐都县| 城固县| 昌宁县| 广州市| 平和县| 伽师县| 京山县| 永年县| 华蓥市| 云林县| 龙口市| 大厂| 淮北市| 陆良县| 鄂尔多斯市| 蒙阴县| 易门县| 玉田县| 托克托县| 富裕县| 佳木斯市| 兴化市| 禹州市| 金乡县| 怀集县| 南昌县| 阳泉市| 明星| 营山县| 武穴市| 古交市| 格尔木市| 大英县| 德安县| 潼关县| 临沭县| 镇康县|