我用C#做了一个有计时器的考试应用程序,考试时假设考生继续按窗口的最小化按钮(没有释放鼠标)1分30秒,即使考生继续按鼠标10分钟,时间也会暂停,但当释放鼠标时,时间会从暂停的那一秒开始恢复,即1分30秒。我希望计时器继续计时,没有任何停顿。
发布于 2011-08-24 20:06:29
您使用的是什么timer组件?System.Windows.Forms.Timer还是System.Threading.Timer
我怀疑S.W.F.Timer使用的是SetTimer应用程序接口调用,它使用窗口消息来解释您所看到的内容,线程计时器会更好。
你也可以使用一个线程,在线程中存储一个DateTime.UtcNow,每隔100ms或其他时间,获取另一个DateTime.UtcNow并检查TimeSpan的运行时间。
发布于 2011-08-24 20:06:51
使用System.Threading.Timer类,因为它应该独立于windows消息工作
发布于 2011-08-24 20:06:37
您可以在测试开始时记录DateTime.UtcNow,并在计时器的Elapsed事件中监视该DateTime.UtcNow - startTime。如果差值大于您希望的值,则可以在此处结束测试。
https://stackoverflow.com/questions/7175079
复制相似问题