C# 線程取消

方案一:
定義一箇中間變量,異常時賦值,下次再執行時根據中間變量的值判斷是否終止當前線程

方案二:
Task.Run有一個重載方法,利用第二個參數可以終止當前線程
在這裏插入圖片描述

CancellationTokenSource cts = new CancellationTokenSource();

for (int i = 0; i < 50; i++)
{
    var value = i;
    Task.Run(() => {
        try
        {
            Console.WriteLine($"開始任務,id:{Thread.CurrentThread.ManagedThreadId}");
            Thread.Sleep(1000);
            if (value % 5==0)
            {
                Console.WriteLine($"this is an exception value={value}");
                cts.Cancel();
            }
            Console.WriteLine($"結束任務,id:{Thread.CurrentThread.ManagedThreadId}");
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    
    }, cts.Token);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章