gpt4 book ai didi

c# - 计时器每 5 分钟运行一次

转载 作者:可可西里 更新时间:2023-11-01 03:03:19 24 4
gpt4 key购买 nike

如何每 5 分钟运行一次函数?示例:我只想在 14:00、14:05、14:10 等时间运行 sendRequest()

我想在 C# 中以编程方式进行。该应用程序是一项 Windows 服务。

最佳答案

使用System.Threading.Timer .您可以指定一个方法来定期调用。

例子:

Timer timer = new Timer(Callback, null, TimeSpan.Zero, TimeSpan.FromMinutes(5));

public void Callback(object state) {
Console.WriteLine("The current time is {0}", DateTime.Now);
}

您可以使用第二个参数将状态传递给回调。

请注意,您需要以某种方式让您的应用程序保持事件状态(例如,将其作为服务运行)。

至于如何确保它运行在hh:mm where mm % 5 == 0,你可以这样做。

DateTime now = DateTime.Now;
int additionalMinutes = 5 - now.Minute % 5;
if(additionalMinutes == 0) {
additionalMinutes = 5;
}
var nearestOnFiveMinutes = new DateTime(
now.Year,
now.Month,
now.Day,
now.Hour,
now.Minute,
0
).AddMinutes(additionalMinutes);
TimeSpan timeToStart = nearestOnFiveMinutes.Subtract(now);
TimeSpan tolerance = TimeSpan.FromSeconds(1);
if (timeToStart < tolerance) {
timeToStart = TimeSpan.Zero;
}

var Timer = new Timer(callback, null, timeToStart, TimeSpan.FromMinutes(5));

请注意,tolerance 是必需的,以防此代码在 now 非常接近最近的 hh:mm 时执行 >毫米 % 5 == 0。您可能可以选择小于一秒的值,但我会把它留给您。

关于c# - 计时器每 5 分钟运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4409558/

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