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(); timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);}
void timer_Elapsed(object sender, ElapsedEventArgs e) { i++; this.Dispatcher.Invoke(new Action(() => { test.Content = i.ToString(); })); }
private int i = 0;
DispatcherTimer与Dispatcher都运行于相同的线程,并且可以在DispatcherTimer上设置DispatcherPriority。
用法
private void Button_Click(object sender, RoutedEventArgs e) { timer.Interval = TimeSpan.FromMilliseconds(1000); timer.Tick += new EventHandler(timer_Tick); timer.Start(); }void timer_Tick(object sender, EventArgs e) { i++; Test.Content = i.ToString(); }
private int i = 0; private DispatcherTimer timer = new DispatcherTimer();
本文向大家介绍C#中timer定时器用法实例,包括了C#中timer定时器用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中timer定时器用法。分享给大家供大家参考。具体如下: 下面的代码通过Timer定时器每隔1000毫秒(1秒)触发一次事件 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍C#使用timer实现的简单闹钟程序,包括了C#使用timer实现的简单闹钟程序的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用timer实现的简单闹钟程序。分享给大家供大家参考。具体如下: 当我在电脑上工作,我经常会被一些东西吸引,比如某宝,结果三个小时过去了我都完全没有注意到。所以我通过C#做了一个简单闹钟程序,这个小程序主要使用C# Timer对象,让用户设定一
本文向大家介绍解析Java中的Timer和TimerTask在Android中的用法和实例,包括了解析Java中的Timer和TimerTask在Android中的用法和实例的使用技巧和注意事项,需要的朋友参考一下 在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务。比如UI上的控件需要随着时间改变,我们可以使用Java为我们提供的计时器的工具类,即Timer和TimerTask
本文向大家介绍C++中stringstream的用法和实例,包括了C++中stringstream的用法和实例的使用技巧和注意事项,需要的朋友参考一下 之前在leetcode中进行string和int的转化时使用过istringstream,现在大致总结一下用法和测试用例。 介绍:C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对
本文向大家介绍C#中this的使用实例分析,包括了C#中this的使用实例分析的使用技巧和注意事项,需要的朋友参考一下 this关键字在C#程序设计中的应用非常频繁,今天本文就this关键字的用法做一番分析,希望能提对大家的C#程序设计有一定的帮助作用。具体分析如下: 1.代表当前类,在当前类中可使用this访问当前类成员变量和方法(需要注意的是 静态方法中不能使用this),也可用于参数传递,传
本文向大家介绍C#中Dictionary类使用实例,包括了C#中Dictionary类使用实例的使用技巧和注意事项,需要的朋友参考一下 在C#中,使用Dictionary类来管理由键值对组成的集合,这类集合称为字典。 字典最大的特点就是能够根据键来快速查找集合中的值。 下面是一个使用字典的小实例,希望通过这个小实例,能让大家对字典操作有一个初步的了解。下面是完整代码。 实例中需要定义两个类: Sc