c# - 从静态时间回调调用实例方法

标签 c# timer

我在一个类中有一个计时器,当这个计时器触发时我想调用这个类的一个实例方法。我如何从静态计时器回调方法访问它?

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/

相关文章:

ios - 如何让我的倒数计时器在每次加载 View 时重置?

c# - 使用 SQLite :memory: with NHibernate 时出现问题

c# - 如果调用 MessageBox.Show(),定时器就可以工作

ios - 使计时器无效并创建新实例

javascript - 在函数运行之前等待计时器完成

c - STM32F103RC TIM3 不工作

python - 如何获取Timer中使用的函数的输出

c# - 已部署的 ASP.NET 站点具有 DEBUG true

c# - 具有 Unity 和单元测试架构设计的 MVVM

c# - 使用 Exception 类捕获每个异常是否正确???如果不是那又怎样?