C#中多种高效定时器方法的使用详解
作为C#语言中常用的一种计时方式,定时器的使用有多种方法。下面将会详细讲解C#中几种高效的定时器方法。
使用System.Timers.Timer
System.Timers.Timer是基于线程池的计时器,使用起来相对简单,适用于大多数计时需求。其使用示例代码如下:
using System;
using System.Timers;
public class Example
{
private static Timer timer;
public static void Main()
{
timer = new Timer(1000); // 间隔1秒(1000ms)
timer.Elapsed += OnTimedEvent;
timer.AutoReset = true; // 自动重复执行
timer.Enabled = true;
Console.WriteLine("Press the Enter key to exit the program...");
Console.ReadLine();
}
private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{
Console.WriteLine("The Elapsed event was raised at {0:HH:mm:ss.fff}",
e.SignalTime);
}
}
上述代码就会每秒输出一行当前时间,且不会停止执行。
使用System.Threading.Timer
System.Threading.Timer为基于线程的计时器,具有更精确的定时功能。但使用起来相对较麻烦。其使用示例代码如下:
using System;
using System.Threading;
public class Example
{
private static Timer timer;
public static void Main()
{
// 初始化计时器
timer = new Timer(OnTimedEvent, null, 1000, Timeout.Infinite);
Console.WriteLine("Press the Enter key to exit the program...");
Console.ReadLine();
}
private static void OnTimedEvent(Object source)
{
Console.WriteLine("The Elapsed event was raised at {0:HH:mm:ss.fff}",
DateTime.Now);
// 重新设置计时器
timer.Change(1000, Timeout.Infinite);
}
}
上述代码也会每秒输出一行当前时间,且不会停止执行。
结语
以上就是C#中几种高效的定时器方法,每种方法都有其适用范围,需要根据不同需求选择。在开发过程中,也可以根据需要,使用自带的计时器类库或者第三方计时器类库。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中多种高效定时器方法的使用详解 - Python技术站