使用计时器,可以重复调用方法。本节介绍两个计时器:System.Threading名称空间中的Timer类和用于基于XAML应用程序的DispatcherTimer。
使用System.Threading.Timer类,可以把要调用的方法作为构造函数的第一个参数传递。这个方法必须满足TimeCallBack委托的要求,该委托定义一个void返回类型和一个object参数。通过构造函数的第二个参数,可以传递任意对象,用回调方法中的object参数接收对应的对象。例如,可以传递Event对象,向调用者发送信号。第3个参数指定第一次调用回调方法时的时间段。最后一个参数指定回调的重复时间间隔。如果计时器应只触发一次,就把第4个参数设置为值-1。
如果创建Timer对象后应改变时间间隔,就可以用Change()方法传递新值:
static void Main(string[] args)
{
ThreadingTimer();
}
static void ThreadingTimer()
{
void TimerAction(object o)=>Console.WriteLine($"System.Threading.Timer {DateTime.Now:T}");
using (var t1 = new Timer(TimerAction,null,TimeSpan.FromSeconds(2),TimeSpan.FromSeconds(3)))
{
Task.Delay(15000).Wait();
}
}
运行结果: