【发布时间】:2019-07-28 01:50:27
【问题描述】:
我需要在可以暂停和恢复的单独线程上运行计时器。
System.Threading.Timer 没问题。但我注意到即使在调试回调时它也会产生新线程。我不想在第一个回调完成之前开始下一个回调,我想在回调执行期间暂停计时器。
-
System.Threading.Timer无法暂停。 - 我不会测量任何时间,所以没有
System.Diagnostics.Stopwatch。 - 在this qestion 中,有人实现了他自己的源自
Timer的类,但我不知道这是什么计时器——System.Threading.Timer是密封的。 -
System.Windows.Threading.DispatcherTimer可以停止,但回调是在 UI 线程上调度的,我不确定这个类的可移植性。
我该怎么办?
【问题讨论】:
-
你可以让一个任务进入一个循环,中间有一个延迟,然后让它运行。
-
是的,我现在只是在写一个带有 while 循环的线程,但我想可能已经提供了一些内置方式。
-
你可以使用一个普通的计时器,但你正在做的事情是
Task,然后每次运行你都会检查上一个任务是否完成或类似的事情。
标签: c# multithreading timer