下面我将为你详细讲解C#中的三种定时计时器Timer用法介绍的完整攻略。
1. 定时器Timer是什么?
定时器是一种常见的应用场景,比如日常使用的Android/IOS系统中的闹钟提醒功能、计数器功能等都需要定时器的支持。而在C#中,我们也可以使用定时器来实现某些需要定时执行的任务。
2. C#中的三种定时计时器Timer用法介绍
C#中,提供了三种常见的定时器Timer用法,分别是System.Threading.Timer
、System.Timers.Timer
和System.Windows.Forms.Timer
。这三个定时器的用法都很类似,下面我们将分别详细介绍这三种定时器的使用方法。
2.1 System.Threading.Timer
System.Threading.Timer
是一种基于线程池的计时器,它可以在指定的时间间隔执行指定的方法。
下面是一个示例代码:
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
TimerCallback tcb = new TimerCallback(PrintTime);//创建TimerCallback委托,指向PrintTime方法
Timer timer = new Timer(tcb, null, 0, 1000);//创建定时器,时间间隔为1000ms
Console.ReadLine();//阻塞主线程,以保证定时器一直运行
}
private static void PrintTime(object state)
{
Console.WriteLine("当前时间: " + DateTime.Now);
}
}
在这段代码中,我们首先创建了一个TimerCallback
委托类型的变量tcb
,并将其指向一个方法PrintTime
。然后,我们使用tcb
来创建一个Timer
对象,使其每隔1秒钟执行一次tcb
所指向的PrintTime
方法。
需要注意的是,在使用System.Threading.Timer
时,可以指定一个可选的对象来作为第二个参数。这个对象会被传入PrintTime
方法中,可以在该方法中进行一些操作。
2.2 System.Timers.Timer
System.Timers.Timer
是一种基于事件的计时器,它也可以在指定的时间间隔执行指定的方法。
下面是一个示例代码:
using System;
using System.Timers;
class Program
{
static void Main(string[] args)
{
Timer timer = new Timer();
timer.Interval = 1000;
timer.Elapsed += PrintTime;//为Timer对象绑定Elapsed事件和PrintTime方法
timer.Start();
Console.ReadLine();
}
private static void PrintTime(object source, ElapsedEventArgs e)
{
Console.WriteLine("当前时间: " + DateTime.Now);
}
}
在这段代码中,我们创建了一个System.Timers.Timer
对象timer
,并设置了它的时间间隔为1000ms。然后,我们为timer
对象绑定了一个Elapsed
事件,并将其指向一个方法PrintTime
,以便在每个1秒钟的时间间隔内执行该方法。
需要注意的是,在使用System.Timers.Timer
时,事件处理程序方法必须有两个参数:object
类型的source
参数和ElapsedEventArgs
类型的e
参数。
2.3 System.Windows.Forms.Timer
System.Windows.Forms.Timer
是一种基于Windows消息机制的计时器,它可以在指定的时间间隔执行指定的方法。
下面是一个示例代码:
using System;
using System.Windows.Forms;
class Program
{
static void Main(string[] args)
{
Timer timer = new Timer();
timer.Interval = 1000;
timer.Tick += new EventHandler(PrintTime);//为Timer对象绑定Tick事件和PrintTime方法
timer.Start();
Application.Run();//阻塞主线程,以保证定时器一直运行
}
private static void PrintTime(object sender, EventArgs e)
{
Console.WriteLine("当前时间: " + DateTime.Now);
}
}
在这段代码中,我们创建了一个System.Windows.Forms.Timer
对象timer
,并设置了它的时间间隔为1000ms。然后,我们为timer
对象绑定了一个Tick
事件,并将其指向一个方法PrintTime
,以便在每个1秒钟的时间间隔内执行该方法。
需要注意的是,在使用System.Windows.Forms.Timer
时,事件处理程序方法必须有两个参数:object
类型的sender
参数和EventArgs
类型的e
参数。
3. 总结
以上就是C#中的三种定时计时器Timer用法介绍的完整攻略,通过使用这三种定时器,我们可以轻松实现定时任务,并可以根据自己的需求选择适合自己的定时器。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中的三种定时计时器Timer用法介绍 - Python技术站