gpt4 book ai didi

c# - 使用 Timer 延迟操作几秒钟

转载 作者:太空宇宙 更新时间:2023-11-03 17:08:26 25 4
gpt4 key购买 nike

我试图通过使用计时器来延迟我的方法:

private System.Timers.Timer _delayTimer;

private void delay()
{
_delayTimer = new System.Timers.Timer();
_delayTimer.Interval = 5000;
//_delayTimer.Enabled = true;
_delayTimer.Elapsed += _delayTimer_Elapsed;
_delayTimer.Start();
someMethod();
}
}

private void _delayTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
// delay for 5 seconds
}

当我进入 delay() 方法时,我想启动计时器,而不是我想要 5 秒延迟,然后才想执行 someMethod() 目前这还没有发生,在执行 delay() 之后,someMethod() 没有延迟 5 秒执行

最佳答案

您当前的代码设置计时器,然后立即执行 someMethod。取而代之的是,您需要将实际的方法调用放在 Elapsed 处理程序中:

private void delay()
{
_delayTimer = new System.Timers.Timer();
_delayTimer.Interval = 5000;
//_delayTimer.Enabled = true;
_delayTimer.Elapsed += _delayTimer_Elapsed;
_delayTimer.Start();
}
}

private void _delayTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
someMethod();
}

如果您不打算做任何其他事情,您可以简单地在内联编写:

_delayTimer = new System.Timers.Timer();
_delayTimer.Interval = 5000;
_delayTimer.Elapsed += (o, e) => someMethod();
_delayTimer.Start();

关于c# - 使用 Timer 延迟操作几秒钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19388517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com