我在一个类中有一个计时器,当这个计时器触发时我想调用这个类的一个实例方法。我如何从静态计时器回调方法访问它?
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
必须是静态的 - 但事实并非如此。
最佳答案
你不能。 source 参数是 Timer 对象,ElapsedEventArgs 对象不包含对您的类实例的任何引用。正如评论中所讨论的那样,您可以使 TimerFired 方法成为非静态方法(即实例),然后您就可以从该类中安全地调用 ClassInstanceMethod 和其他实例方法。
关于c# - 从静态时间回调调用实例方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6839635/