C#
多线程实现定时器
分类:.net/C#2010-06-19 19:201559 人阅读评论(1)收藏举报
多线程 c#timerdateobjectthread
我们在写 winfrom 时经常会用到定时器,比如客户端通过 socket 定时向服务器发送检
测包等。.netframework 提供了一个定时器控件 System.Windows.Forms.Timer,使用很方
便。
其实通过 C#多线程也可以实现定时器功能。我的做法大致为:新开一个线程用于计时,
当时间间隔过后用事件 timerover 实现主窗体中的定时函数,再通过调用 contro.invoke 方
法返回主窗体线程执行定时后的操作。
先定义两个类,timer 类用于管理和配置定时器,interval_date 用于计算两个时刻的间
隔(例如 2010 年 1 月 1 日和 2012 年 12 月 26 日之间的毫秒),单位是毫秒,因此定时器
的设置范围理论上可以无限大。原理不多说,下面放代码:
timer 类代码:
[c-sharp]view plaincopy
1. publicclasstimer
2. {
3. intcount=0;
4. publicdelegatevoidDeletimerover(intcount);
5. publiceventDeletimerovertimerover;
6. privateinttime;
7. publicintTime
8. {
9. set{time=value;}
10. get{returntime;}
11. }
12. privateboolenable;
13. publicboolEnable
14. {
15. set{enable=value;}
16. }