能不能不用Timer组件控制时间?例如,每十分钟弹出MessageBox.Show("Good Luck!");
可以写成private void Timer1_Tick(object sender,EventArgs e){MessageBox.Show("Good Luck!");}
问题是,能不能直接引用系统时间实现?例如,每当9:00,9:10,,9:20,9:30,9:40或9:50时,就弹出这个消息框。效果差不多。这样就不用使用Timer组件了。这样实现好不好?如何写代码?(我不是光要是9点钟的时间,所有小时的每十分钟都要包括。)还有,Timer组件属性Interval,是不是值越大越好?值越大越精确?例如,每100秒弹出一次消息框。第一种是:设置Timer的Interval为1000。然后:private void Timer1_Tick(object sender,EventArgs e){m=0;m=m+1;if(m>100){MessageBox.Show(“10秒钟已过了,请尽快付钱。”,“警告”,MessageBoxButtons.OK,MessageBoxIcon.Information,MessageBoxDefaultButton.Button1,MessageBoxOptions.DefaultDesktopOnly);}}第二种是:设置Timer的Interval为100000。然后:private void Timer1_Tick(object sender,EventArgs e){m=0;m=m+1;if(m>10000){MessageBox.Show(“10秒钟已过了,请尽快付钱。”,“警告”,MessageBoxButtons.OK,MessageBoxIcon.Information,MessageBoxDefaultButton.Button1,MessageBoxOptions.DefaultDesktopOnly);}}是不是第二种比较好?这样刷新频率就降低了。

解决方案 »

  1.   

    用线程来取系统时间,判断适合你的时间,你就messagebox.show();不就行了
      

  2.   

    当然不是...WinForm的Timer组件是基于Windows的计时器,Windows计时器是为单线程环境设计的,其精度限定为55毫秒,并且要求用户代码有一个可用的UI消息泵,而且总是在同一个线程中操作,或者将调用封送到另一个线程...基于服务器的计时器System.Timers.Timer比Windows计时器精确得多,在Windows XP以上版本的系统中精度大约是15-16毫秒...