Timer

定时器

介绍对象主要有以下三个:

DispatcherTimer

DispatcherTimer定时器可以说是专门为WPF界面设计的定时器,此定时器与UI都在同一个线程
当界面比较简单,UI线程任务轻,推荐在WPF程序中使用这个定时器!
使用方法如下:

  • 添加命名控件的引用
using System.Windows.Threading;
  • 实例化DispatcherTimer
DispatcherTimer timer = new DispatcherTimer();
  • 设置DispatcherTimer参数
 timer.Interval = new TimeSpan(0,1,0);//设置的间隔为一分钟
 timer.Tick += timer_Tick;//设置定时器溢出触发事件
  • DispatcherTimer开始以及停止
	//开启定时器
	timer.IsEnable = true
	timer.Start();
	//关闭定时器
	timer.IsEnable = false;
	timer.Stop();
//注意:经过测试,上述两种开/关定时器操作好像没啥区别,随便用一种方式就行

注意:

  • DispatcherTimer好像是默认一直循环执行,不要在溢出触发事件中重新开启
  • 在界面显示复杂,UI线程实时刷新任务重的不适合用DispatcherTimer,来自于第二个参考资料网站中说明,还没有进行验证。

System.Timers.Timer

C#系统自带的定时器,与UI线程不在同一个线程中
使用方法如下:

  • 实例化System.Timers.Timer
 System.Timers.Timer timer = new System.Timers.Timer();
  • 设置定时器参数
	timer.Interval = 60000;//这里设置的间隔时间为1分钟,默认单位是毫秒
	//定时器溢出事件
	timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
	timer.AutoReset = true;//设置timer_Elapsed是执行一次(false)还是一直执行(true)
  • 定时器开关操作
//开启定时器
	timer.IsEnable = true
	timer.Start();
	//关闭定时器
	timer.IsEnable = false;
	timer.Stop();

注意:

  • 这个定时器在教程中使用时会有报错,但是自己测试时候没有问题,所以还是不太推荐在WPF中使用

System.Threading.Timer

感觉和System.Timers.Timer差别不是很大,操作上要麻烦一些。和UI也不是在一个线程中。
使用方法如下:

  • 实例化System.Threading.Timer
	 timer = new System.Threading.Timer(
	 new TimerCallback(Update), null, Timeout.Infinite, Timeout.Infinite);

对构造函数中的参数进行说明:
- new TimerCallback(Update)
定时器溢出回调函数,其中的Update就是具体执行的函数名
- null
说实话 不知道 基础用法填null就可以了
- 第一个Timeout,Infinit
定时器开启到第一次调用回调函数的间隔,支持int类型,单位为毫秒以及TimeSpan.填Timeout,Infinit代表永远不启动回调函数。
- 第二个Timeout,Infinit
回调函数与下一次回调函数之间的间隔,支持int类型,单位为毫秒以及TimeSpan.填Timeout,Infinit代表永远不启动下一个回调函数

  • 开启与关闭
	//开启间隔1s的定时器
	timer.Change(1000, 1000);
	//关闭定时器
	timer.Change(Timeout.Infinite, Timeout.Infinite);
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值