在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變量來標記定時任務是否正在執行,如果任務正在執行,則直接返回避免重復執行。