zoukankan      html  css  js  c++  java
  • C# Task 暂停与取消

    1.声明参数

    1 CancellationTokenSource tokenSource = new CancellationTokenSource();
    2 CancellationToken token = tokenSource.Token;
    3 ManualResetEvent resetEvent = new ManualResetEvent(true);

    2.定义Task

    Task task = new Task(async () => {
        while (true) {  
            if (token.IsCancellationRequested) {
                return;
            }
            
            // 初始化为true时执行WaitOne不阻塞
            resetEvent.WaitOne();
    
            // Doing something.......
            
            // 模拟等待100ms
            await Task.Delay(100);
        }
    
    }, token);
    
    task.Start();

    3.暂停Task

    resetEvent.Reset();

    4.继续Task

    resetEvent.Set();

    5.取消Task

    tokenSource.Cancel();

    备注:任务取消后如果想重开任务,不能使用已经取消的token,需要重新声明一个对象.

  • 相关阅读:
    progresql
    postgresql
    postgresql
    postgresql 索引
    postgresql 视图
    postgresql 触发器
    postgresql异常快速定位
    postgresql数据库备份和恢复
    amgular $q用法
    安装fcitx
  • 原文地址:https://www.cnblogs.com/zhengzc/p/10724839.html
Copyright © 2011-2022 走看看