System.Timers.Timer和DispatcherTimer
时间: 2024-06-14 18:06:54 浏览: 229
System.Timers.Timer和DispatcherTimer都是用于定时执行任务的计时器类,但它们在使用方式和适用场景上有所不同。
System.Timers.Timer是一个多线程计时器,适用于在后台线程执行周期性任务。它是基于底层的System.Threading.Timer实现的,可以在指定的时间间隔内重复执行任务。以下是一个使用System.Timers.Timer的示例:
```csharp
static System.Timers.Timer Timer1 = new System.Timers.Timer();
static void Main()
{
Timer1.Interval = 1000; // 设置时间间隔为1秒
Timer1.Elapsed += new ElapsedEventHandler(PeriodicTaskHandler); // 绑定事件处理程序
Timer1.Start(); // 启动计时器
}
static void PeriodicTaskHandler(object sender, ElapsedEventArgs e)
{
// 执行周期性任务的代码
}
```
DispatcherTimer是一个UI线程计时器,适用于在UI线程上执行周期性任务。它是基于WPF的Dispatcher对象实现的,可以在指定的时间间隔内重复执行任务,并且可以直接更新UI元素。以下是一个使用DispatcherTimer的示例:
```csharp
private void StartTimer()
{
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += OnTimerHandler; // 绑定事件处理程序
dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 100); // 设置时间间隔为100毫秒
dispatcherTimer.Start(); // 启动计时器
}
private void OnTimerHandler(object sender, EventArgs e)
{
string strTime = DateTime.Now.ToString("HH:mm:ss:fff"); // 获取当前时间
lbTime.Content = strTime; // 更新UI元素
}
```
阅读全文