gpt4 book ai didi

c# - 如何从这个定时器的回调函数中更改 System.Threading.Timer 中的间隔时间?

转载 作者:太空狗 更新时间:2023-10-29 17:39:35 24 4
gpt4 key购买 nike

如何从这个计时器的回调函数更改 System.Threading.Timer 中的间隔?这是正确的吗?

这样做。没有发生。

public class TestTimer
{
private static Timer _timer = new Timer(TimerCallBack);

public void Run()
{
_timer.Change(TimeSpan.Zero, TimeSpan.FromMinutes(1));
}

private static void TimerCallBack(object obj)
{
if(true)
_timer.Change(TimeSpan.Zero, TimeSpan.FromMinutes(10));
}

}

最佳答案

这一行生成无限递归:

if(true)
_timer.Change(TimeSpan.Zero, TimeSpan.FromMinutes(10));

第一个参数强制 TimerCallBack 立即执行。所以它无限期地一次又一次地执行它。

修复方法是

if(true)
_timer.Change(TimeSpan.FromMinutes(10), TimeSpan.FromMinutes(10));

关于c# - 如何从这个定时器的回调函数中更改 System.Threading.Timer 中的间隔时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6119863/

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