我正在编写一个包含计时器的类(最重要的是,它可能不会在 0 处初始化,它可能已经开始计时),并且该类将包含 Start、Pause、Resume 和 Stop/Complete 方法。我知道我可以使用 C# 中的许多计时器,即 System.Timers.Timer,但是我不确定这个计时器是否允许我以预定义的经过时间启动计时器。
对于这种情况什么是最好的?
不要使用System.Windows.Forms.Timer- 这将在表单的 UI 线程上运行委托,这可能不是您想要的。
System.Timers.Timer源自于System.ComponentModel.Component
,因此它面向设计表面。
System.Threading.Timer最适合线程池上的后台任务。
System.Threading.Timer
满足您的所有要求(假设您尝试在线程池上运行委托。
public void MyCallback(object o) { ... }
int timeToStart = 1000;
int period = 2000;
//fire the delegate after 1 second, and every 2 seconds from then on
Timer timer = new Timer(MyCallback, null, timeToStart, period);
//pause
timer.Change(Timeout.Infinite, Timeout.Infinite);
//resume
timer.Change(timeToStart, period);
//stop
timer.Dispose();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)