C#考试应用计时器作弊问题

时间:2011-08-24 12:02:10

标签: c# timer

我已经在C#中制作了一个有计时器的考试应用程序,同时参加考试时假设候选人在1分30秒时按下窗口的最小化按钮(不释放鼠标),即使候选人暂停继续按下鼠标10分钟,但是当鼠标被释放时,时间从暂停的第二个时间开始恢复,即1分30秒。我希望计时器能够在没有任何暂停的情况下继续。

3 个答案:

答案 0 :(得分:4)

您使用的计时器组件是什么? System.Windows.Forms.TimerSystem.Threading.Timer

我怀疑S.W.F.Timer使用SetTimer API调用,该调用使用窗口消息来解释您所看到的内容,线程计时器会更好。

你也可以使用一个线程,在线程中存储一个DateTime.UtcNow和每100ms或者其他东西,得到另一个DateTime.UtcNow并检查TimeSpan经过的时间。

答案 1 :(得分:2)

使用System.Threading.Timer类,因为它应该独立于Windows消息

答案 2 :(得分:1)

您可以在测试开始时记录DateTime.UtcNow,并在计时器的Elapsed事件中监控DateTime.UtcNow - startTime。如果差异大于您的要求,您可以在那里结束测试。