【发布时间】:2018-01-02 00:55:27
【问题描述】:
我需要写一段代码是:
- 在每个配置的时间间隔运行
- 在一定时间后或满足条件后停止。
我发现我可以将 Task 与 CancellationToken 一起使用,但我看不到任何选项可以在一段时间内一次又一次地运行它。
我看到的另一个选项是使用System.Threading.Timer - 但如果满足条件,我将无法取消该过程。
有人可以提出一个优雅的解决方案吗?
【问题讨论】:
-
你可以在定时器触发后检查条件(第一个动作),如果需要跳过处理。
-
正在寻找 Timer.Enabled 属性?还是在循环内带有 Task.Delay() 的任务中的 while 语句?任务更容易可靠地停止。
标签: c# multithreading