如何在C#中重置计时器?

134

我知道有三个与Timer相关的类:System.Threading.TimerSystem.Timers.TimerSystem.Windows.Forms.Timer,但是它们都没有一个.Reset()函数,可以将当前经过的时间重置为0。

是否有BCL类具备此功能呢?是否有非hack方式实现此功能呢?(我认为也许改变时间限制可能会重置它)是否考虑重新实现一个带有此功能的Timer类,或者如何在BCL类之一中可靠地实现此功能?


3
使用JP的解决方案,使用扩展方法实现。 - benPearce
我也有重置的同样需求,原因与提到的相同,FileSystemWatcher 使用起来很不方便。 - John Lewin
如果您使用Stopwatch作为计时器并选择使用扩展方法答案,请注意,因为Stopwatch.Restart扩展方法将在.NET 4.0中推出。http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.restart(VS.100,lightweight).aspx - si618
11个回答

-1

我做这个

//Restart the timer
queueTimer.Enabled = true;

1
这只是启用它。即使之前已禁用,重新启用也不会改变到那时收集的经过时间。 - vapcguy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接