C#考试申请计时器作弊问题

C#考试申请计时器作弊问题,c#,timer,C#,Timer,我用C#制作了一个考试应用程序,它有一个计时器,在参加考试时,假设考生持续按windows的最小化按钮(不释放鼠标)1分30秒,即使考生持续按鼠标10分钟,时间也会暂停,但释放鼠标后,时间从暂停的那一秒开始恢复,即1分30秒。我希望计时器可以不间断地继续运行。您使用的计时器组件是什么System.Windows.Forms.Timer或System.Threading.Timer 我怀疑S.W.F.Timer使用SetTimerAPI调用,该调用使用窗口消息来解释您看到的内容,线程计时器会更好

我用C#制作了一个考试应用程序,它有一个计时器,在参加考试时,假设考生持续按windows的最小化按钮(不释放鼠标)1分30秒,即使考生持续按鼠标10分钟,时间也会暂停,但释放鼠标后,时间从暂停的那一秒开始恢复,即1分30秒。我希望计时器可以不间断地继续运行。

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

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


您也可以只使用一个线程,存储一个
DateTime.UtcNow
,并且每隔100ms或线程中的某个内容,获取另一个
DateTime.UtcNow
并检查
TimeSpan
以了解经过的时间。

您可以在测试开始时记录
DateTime.UtcNow
,并在出现计时器时监控该
DateTime.UtcNow-startTime
。如果差异大于您想要的,您可以在那里结束测试。

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

显然,您正在UI线程中执行一些不应该在UI线程中执行的操作。请发布您的代码。您现在想使用UtcNow,因为时区/dst可能会改变,这会影响值,尽管不太可能。