问题描述
- C# Timer控件可以共用吗?
- 想做一个考试系统
进来考试的人是随时都可以进来的。
也就是说每个人进来都要在系统里面登记同时设定一个时间比如2小时到时间了系统自动提醒。
想用Timer控件来做但是Timer控件可以共用吗?有点不明白请大虾们指导一下~~
解决方案
一个Timer只能定一个时间,但是可以用你自己的算法 实现公用。
例如,用户登录的时候把登录时间保存起来(保存在数据库或者内存中都可以);
timer设置没一分钟激发一次,在Elapsed event中依次计算登录用户的登录时间(当前时间减去记录的登录时间)。
如果有用户超过2小时,提醒。
解决方案二:
这里用一个timer足够了,记录下每个人的登录时间,timer判断当前时间减去登录时间是否超时,超时通知那个用户即可。
解决方案三:
Timer 记得的准确性好像不行,特别是累加记时时,累加次数较多时会产生较大的误差。
但还是可以使用 Timer 的,每次 Timer 时读系统的时间, 这样就不会有问题。
每个人登陆时,记下其登陆时的系统时间,与当前时间做差值就能完成时间的判断。
解决方案四:
你的程序的这个Timer的作用我觉得不是用来记录每个考生的时间是否结束,而是用来触发另外一个定时去检查每个考生的考试时间的方法。
就像考场可以只在讲台上放一个钟(Timer),每个学生进来,老师记录一下他们的进场时间(系统登记)。之后,老师定时看看时间(Timer Tick事件,触发时间比较的方法),再更进场记录对比一下(学生考试时间比较调用的方法),就知道哪个学生是否考试时间到了,如果到了,就收卷(比较结果为时间已到,触发相应的方法,比如收卷)。
时间: 2024-08-04 01:17:23