C#中的Timer和DispatcherTimer使用实例

2019-12-26 12:15:54刘景俊
易采站长站为您分析C#中的Timer和DispatcherTimer使用实例,本文分别给出它们的使用代码实例,需要的朋友可以参考下    

Timer组件是基于服务器的计时器,通过设置时间间隔Interval,周期性的触发Elapsed事件。

用法如下:

 

复制代码
class Program {
        static System.Timers.Timer Timer1 = new System.Timers.Timer();
        static void Main() {
            Timer1.Interval = 1000;
            Timer1.Elapsed += new ElapsedEventHandler(PeriodicTaskHandler);            
            Timer1.Start();
            Console.ReadLine();
        }

 

        static void PeriodicTaskHandler(object sender, ElapsedEventArgs e) {
        string str =Thread.CurrentThread.ManagedThreadId.ToString()+"##" +"Timer1" +"##" + e.SignalTime.ToLongTimeString();
            Console.WriteLine(str);
        }
    }

 

DispatcherTimer:Dispatcher队列中的计时器,不能保证正好在设置的时间间隔发生时执行计时器,但能保证不会在时间间隔发生之前执行计时器。这是因为  DispatcherTimer的操作也是放置在Dispatcher队列中的,何时执行DispatcherTimer操作取决于队列中其他作业及其优先级。

在WPF应用程序中

Timer的Elapsed事件绑定的方法没有运行在UI线程上,如果要访问UI线程上的对象,需要利用Invoke或BeginInvoke 将操作发布到UI线程的Dispatcher上。

用法如下:

 

复制代码
private void Button_Click(object sender, RoutedEventArgs e) {
            Timer timer = new Timer();
            timer.Interval = 1000;
            timer.Start();