作者mhc (路边小草)
看板Visual_Basic
标题Re: [.NET] 关於Timer
时间Wed Nov 9 23:31:10 2005
※ 引述《UBC (UBC)》之铭言:
: 我现在有程式八小时要起来工作运算
: 但是参阅了msdn後 但是黄字部份 interval似乎不可以那麽长的时间
: 请问有经验的前辈会怎麽做呢
: 或者程式写死 我是每天早上八点 下午四点 晚上十二点要运算结果
: 有比较好的程式写法吗 谢谢
: (还是用windows的工作排程 设定每八小时起来跑 但是我基本上希望是写在程式去控制)
: Windows Form Timer 元件具有 Interval 属性,以指定计时器事件与下一个事件之间经
: 过多少毫秒数。除非元件被停用,否则计时器将持续在大约相等的时间间隔点,收到
: Tick 的事件。
: 这个元件是专为 Windows Form 环境所设计。如果您需要适用於伺服器环境的计时器,请
: 参阅伺服器端计时器简介。
: 当您在设计有关 Timer 元件的程式时,必须考虑 Interval 属性的一些限制:
: 如果您的应用程式或其他应用程式对系统有大量的需求 (例如长回圈、密集的计算或磁碟
: 机、网路或连接埠存取),则您的应用程式可能不会依照 Interval 属性的指定取得计时
: 器事件。
: 间隔可以介於 1 和 64,767 之间 (含),也就是说,即使是最长间隔也不会超过一分钟 (
: 约 64.8 秒) 太少。
: 间隔不保证经过时间的精确性。若要确保正确性,计时器应该检查系统时钟,而不是在内
: 部追踪累积的时间。
: 系统每秒钟产生 18 个时钟刻度,因此即使 Interval 属性是以毫秒计算,间隔真正的精
: 确性也不会超过十八分之一秒。
有个简单的变通解,假设 Interval = 60000(60秒) = 1分钟
若要做到每三小时(180分)执行一次要进行的工作
则首先另外弄一个global变数 Mins
之後每当Timer事件发生时就
1.先把Mins+=1
2.检查Mins是不是达到180, 如果到达180则
1.把Mins归零
2.执行要做的工作
参考参考 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.216.112.253