我使用了一个System.Threading.Timer
对象,并设置了它的周期:
// period of 1 second
var timer = new Timer(CallBack, null, 0, 1000);
...
现在我想得到我的计时器,我该怎么办?
答案 0 :(得分:3)
没有支持的方法可以做到这一点。您有两种选择:
1)最好使用System.Timers.Timer
类,因为它更灵活,在多线程使用时更安全。如果您想了解更多有关计时器的信息,以及System.Windows.Forms.Timer
,System.Timers.Timer
和System.Threading.Timer
之间的比较,请阅读MSDN article about this subject.
2)使用反射访问持有期间值的私有成员。有很多关于如何执行此操作的nice articles,您可以使用ILSpy查看您需要阅读的字段。 (它是.NET 4.0中的timer.m_timer.m_timer.m_period,在其他版本中可能也是一样)
答案 1 :(得分:1)
你没有。也就是说System.Threading.Timer
不支持获取期限(或据我所知的任何其他成员)。大致确定时间的唯一方法是自己计时。
答案 2 :(得分:0)
根据MSDN,没有办法实现你的要求。
答案 3 :(得分:0)
您无法使用System.Threading.Timer
,但是如果您使用System.Timers.Timer
或System.Windows.Forms.Timer
,则可以使用Timer.Interval
属性进行检查。您可以进一步参考此link以查看这两种实现的不同之处。