C# Task的暫停與終止


C# Task 暫停與取消

 

1.聲明參數

1 CancellationTokenSource _cancelSource= new CancellationTokenSource();
2 CancellationToken _cancelToken= tokenSource.Token;
3 ManualResetEvent _resetEvent = new ManualResetEvent(true);

2.定義Task

復制代碼
Task task = new Task(async () => {
    while (true) {  
        if (_cancelToken.IsCancellationRequested) {
            return;
        }
        
        // 初始化為true時執行WaitOne不阻塞
        _resetEvent.WaitOne();

        // Doing something.......
        
    }

}, token);

task.Start();
復制代碼

3.暫停Task

_resetEvent.Reset();

4.繼續Task

_resetEvent.Set();

5.取消Task

_cancelSource.Cancel();

 

備注:任務取消后如果想重開任務,不能使用已經取消的token,需要重新聲明一個對象.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM