c#考试应用程序计时器作弊问题

本文关键字:问题 计时器 考试 应用程序 | 更新日期: 2023-09-27 18:06:43

我在c#中做了一个有计时器的考试应用程序,在考试时假设候选人在1分30秒继续按下窗口的最小化按钮(不释放鼠标),即使候选人继续按下鼠标10分钟,时间也会暂停,但是当鼠标被释放时,时间从暂停的那一秒恢复,即1分30秒。我希望计时器继续没有任何暂停

c#考试应用程序计时器作弊问题

您使用的是什么计时器组件?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。如果差异大于您想要的,您可以在那里结束测试。