并不能用数据类型的精度来判断Interval的可设最大值

上一篇中说到Timer的Interval, 有朋友反馈说:

Interval 属性接受的参数是一个double类型的值,double类型的数值是介于 -1.79769313486232e308
和 +1.79769313486232e308 之间的双精度 64 位数字。
所以最大的时间是
1.79769313486232e308 / 1000(秒) /3600(小时)/24(天)/365(年)=
5.7004475357125824454591577879249E297年

如果Interval的值真是按数据类型的精度决定有效时间间隔,那么WinForm的Timer 可
接受的参数是一个int类型,
那么,按上述推理:
int 范围: -2,147,483,648 到 2,147,483,647 ,
有符号 32 位整数 (.NET Framework 类型:System.Int32).
则System.Windows.Forms.Timer 的 Interval 应该是可设置的最大时间间隔:
2,147,483,647/3600000/24  =  24.855134803240740740740740740741 天

但事实并非如此:MSDN明确地说:
Windows 窗体 Timer 组件间隔可以在 1 64,767 之间(包括 1 64,767,这意味着即使最长的间隔(大约 64.8 秒)也不会超过一分钟很多。

这里好像用的是Int16而不是Int32 ,我不知道是MSDN里写错了还是.....

毕竟这是服务器开发,可不能出现这么大的错误。相差很远哦。

 

原文地址:https://www.cnblogs.com/babyblue/p/3707.html