相关代码如下:
public class Tasker {
System.Timers.Timer timer = new System.Timers.Timer();
static object locker = new object();
public Tasker()
{
timer.Interval =30000;
timer.Start();
timer.Elapsed += new System.Timers.ElapsedEventHandler(DoSometing);
Console.WriteLine("OK, timer start at: " + DateTime.Now.ToString());
}
private void DoSometing(object source, ElapsedEventArgs e)
{
if (Monitor.TryEnter(locker))
{
///队列中的上一个任务执行完了,才能执行下一个任务
///保证上一个任务执行完了。
try
{
// my processing code
Console.WriteLine("process ...." + DateTime.Now.ToString());
}
finally
{
Monitor.Exit(locker);
}
}
}
}