【发布时间】:2010-11-05 18:03:19
【问题描述】:
我知道有三个 Timer 类,System.Threading.Timer、System.Timers.Timer 和 System.Windows.Forms.Timer,但它们都没有 .Reset() 函数,可以将当前经过的时间重置为 0。
是否有具有此功能的 BCL 类?有没有一种非黑客的方式来做到这一点? (我想也许改变它的时间限制可能会重置它)想想重新实现具有此功能的 Timer 类有多难,或者如何使用 BCL 类之一可靠地做到这一点?
【问题讨论】:
-
使用JP的解决方案使用扩展方法
-
我也有同样的重置需求,出于同样的原因,FileSystemWatcher 使用起来不愉快且不方便
-
如果您使用 Stopwatch 作为计时器并使用扩展方法答案,请小心,因为 Stopwatch.Restart 扩展方法将在 .NET 4.0 中提供。 msdn.microsoft.com/en-us/library/…