如何获取 System.Threading.Timer 周期

Nic*_*ick 3 c# timer

我使用一个System.Threading.Timer对象,并设置它的周期:

// period of 1 second
var timer = new Timer(CallBack, null, 0, 1000);

...
Run Code Online (Sandbox Code Playgroud)

现在我想获取我的计时器的时间,我该怎么做?

Nik*_*vić 5

没有支持的方法来做到这一点。您有两个选择:

1)最好使用System.Timers.Timer类,因为它更灵活,在多线程使用的情况下使用更安全。如果您想了解更多关于定时器,以及之间的比较System.Windows.Forms.TimerSystem.Timers.Timer并且System.Threading.Timer,请阅读有关此主题的MSDN文章。

2) 使用反射访问持有期间值的私有成员。有很多关于如何做到这一点的好文章,您可以使用ILSpy来查看您需要阅读哪个字段。(在.NET 4.0中是timer.m_timer.m_timer.m_period,其他版本可能也一样)