在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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,需要重新声明一个对象. 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,需要重新声明一个对象. |
请发表评论