我在类中有一个计时器,当这个计时器触发时,我想调用这个类的实例方法。如何从静态计时器回调方法中访问此值?
private void ClassInstanceMethod()
{
}
public static void TimerFired(object source, ElapsedEventArgs e)
{
// Want to call ClassInstanceMethod() here
}
private void startTimer()
{
timer = new Timer();
timer.Interval = 1000;
timer.Elapsed += new ElapsedEventHandler(TimerFired);
timer.AutoReset = false;
timer.Enabled = true;
}
解决了
我有一种误解,认为TimerFired
必须是静态的--但事实并非如此。
发布于 2011-07-26 21:13:25
源参数是Timer对象,ElapsedEventArgs对象不包含对类实例的任何引用。正如注释中所讨论的那样,您可以使TimerFired方法非静态(即实例),从那里可以安全地从类调用ClassInstanceMethod和其他实例方法。
https://stackoverflow.com/questions/6839635
复制