c#考试应用程序计时器作弊问题
本文关键字:问题 计时器 考试 应用程序 | 更新日期: 2023-09-27 18:06:43
我在c#中做了一个有计时器的考试应用程序,在考试时假设候选人在1分30秒继续按下窗口的最小化按钮(不释放鼠标),即使候选人继续按下鼠标10分钟,时间也会暂停,但是当鼠标被释放时,时间从暂停的那一秒恢复,即1分30秒。我希望计时器继续没有任何暂停
您使用的是什么计时器组件?System.Windows.Forms.Timer
还是System.Threading.Timer
?
我怀疑S.W.F.Timer
使用SetTimer
API调用,它使用窗口消息来解释你所看到的,一个线程计时器会更好。
您也可以使用一个线程,存储一个DateTime.UtcNow
,并且在线程中每隔100毫秒或其他东西,获得另一个DateTime.UtcNow
并检查TimeSpan
的运行时间。
使用System.Threading.Timer
类,因为它应该独立于windows消息
您可以在测试开始时记录DateTime.UtcNow
,并在计时器的Elapsed
事件中监视DateTime.UtcNow - startTime
。如果差异大于您想要的,您可以在那里结束测试。