厅一一 2011-03-03 459浏览量
计时器用于到指定时间调用委托(或说执行方法),或定时调用委托。
(一) Timer类
名字空间:System.Threading
它主要提供在指定时间间隔内循环执行方法。
它的构造方法有多个,以其中一个为例:
public Timer(TimerCallback callback,Object state,int dueTime,int period)
四个参数分别表示:
要执行的方法;包括回调方法中要使用的信息的对象;在调用执行的方法之前的延迟时间(毫秒);调用回调方法的时间间隔(毫秒)
TimerCallback的定义为:
public delegate void TimerCallback(Object state)
示例:
设置2000毫秒后开始调用执行方法,每5000毫秒执行一次,并把k传递到执行方法(callback委托)
说明:2000毫秒后首次执行一次回调方法,然后每5000毫秒后再执行。
回调委托类型已经给出,在使用时可以Action委托或lambda表达式或匿名委托来定义,如下:
如果终止计时器,可以使用public void Dispose()方法
例如:设置定时器,2秒钟后开始,每2秒调用一次,然后在调用5次(首次除外)后释放计时器。
(二) System.Timers.Timer类
在应用程序中生成定时事件。它有一个属性:AutoReset
public bool AutoReset { get; set; }
用于设定每次指定的间隔结束时引发 Elapsed 事件,还是仅在指定的间隔第一次结束后引发该事件。
重要成员说明:
Interval:设置时间间隔,单位毫秒
Enabled:是否引发Elapsed事件
Elapsed:事件
public event ElapsedEventHandler Elapsed
其中事件类型:
public delegate void ElapsedEventHandler(Object sender,ElapsedEventArgs e)
sender为Timer,eventargs的重要属性为:public DateTime SignalTime { get; }
用于触发计时事件的时间。
示例:
打印内容略。
(三) System.Windows.Forms.Timer
用在winform中,且必须用于窗口。略。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。