这篇博客将梳理一下.NET中4个Timer类,及其用法。

1. System.Threading.Timer

public Timer(TimerCallback callback, object state, int dueTime, int period);

callback委托将会在period时间间隔内重复执行,state参数可以传入想在callback委托中处理的对象,dueTime标识多久后callback开始执行,period标识多久执行一次callback。

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

using System.Threading;// System.Threading.TimerTimer timer = new Timer(delegate{
    Console.WriteLine($"Timer Thread: {Thread.CurrentThread.ManagedThreadId}");

    Console.WriteLine($"Is Thread Pool: {Thread.CurrentThread.IsThreadPoolThread}");

    Console.WriteLine("Timer Action.");
},null,2000,1000);

Console.WriteLine("Main Action.");
Console.WriteLine($"Main Thread: {Thread.CurrentThread.ManagedThreadId}");

Console.ReadLine();

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

Timer回掉方法执行是在另外ThreadPool中一条新线程中执行的。

2. System.Timers.Timer

System.Timers.Timer和System.Threading.Timer相比,提供了更多的属性,

Interval  指定执行Elapsed事件的时间间隔;

Elapsed  指定定期执行的事件;

<