在C#中,可以使用一个bool类型的变量来标记定时任务是否正在执行,如果任务正在执行,则在下一次调度执行前直接返回,避免重复执行。例如:
using System;
using System.Timers;
class Program
{
private static bool isRunning = false;
static void Main()
{
Timer timer = new Timer(1000); // 1秒钟执行一次
timer.Elapsed += TimerElapsed;
timer.Start();
Console.ReadLine();
}
static void TimerElapsed(object sender, ElapsedEventArgs e)
{
if (isRunning)
{
return; // 避免重复执行
}
isRunning = true;
// 执行定时任务的代码
isRunning = false;
}
}
在上面的代码中,通过isRunning变量来标记定时任务是否正在执行,如果任务正在执行,则直接返回避免重复执行。