System.Timers名称空间中的Timer类的构造函数只需要一个时间间隔,经过该时间间隔后应该调用的方法用Elapsed事件指定,这个事件需要一个ElapsedEventHandler类型的委托,这个委托需要objec和ElapsedEventArgs参数。另外它的AutoReset属性是指定计时器是否重复触发,如果这个属性设置为false,事件就触发一次(默认是重复触发的),调用Start()方法允许计时器触发事件,除了调用Star()方法之外,还可以把Enabled属性设置为true,Stop()方法把Enable属性设置为false,以此用来停止计时器。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Timers; namespace MyTimer { class Program { public static int nCount = 0; public static Timer MyTimer = null; static void Main(string[] args) { //设置时间间隔 MyTimer = new Timer(1000); //计时器重复触发 MyTimer.AutoReset = true; //MyTimer.Elapsed += TimerEvent;(也可以正常运行) MyTimer.Elapsed += new ElapsedEventHandler(TimerEvent); //启动计时器 MyTimer.Start(); //MyTimer.Enabled = true; Console.WriteLine("------定时器启动------"); Console.ReadKey(); } private static void TimerEvent(object sender, ElapsedEventArgs e) { Console.WriteLine("{0}", ++nCount); if(nCount >= 10) { //关闭计时器 MyTimer.Stop(); Console.WriteLine("------定时器停止------"); } } } }