timer-C# Timer控件可以共用吗?

问题描述

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

timer-C# Timer控件可以共用吗?的相关文章

vb.net的Timer控件

Timer(定时器)控件是用来产生一定的时间间隔.在每个时间间隔中都可根据应用程序的要求有相同或不同的事件或过程发生,Timer控件在工具箱中的图标如图所示: 1.设置Interval.Enabled属性 Interval属性是Timer控件最重要的属性之一,它决定着事件或过程发生的时间间隔,Interval属性以千分之一秒为基本单位,就是事件发生的最短间隔是一毫秒,但是这样的时间间隔对系统的要求很高,因此按时间精度的要求适当设置这个属性也是工程运行速度和可靠性的一种保证. Enabled属性可

timer-DEV 第三方控件中的使用中自定义用户控件里面的Timer 控件的使用

问题描述 DEV 第三方控件中的使用中自定义用户控件里面的Timer 控件的使用 用户控件中使用的代码如下:/asp:ScriptManager /asp:Timer /asp:Literal /asp:UpdatePanel 为什么到事件刷新的时候会报 " Sys.WebForms.PageRequestManagerParserErrorException: 未能分析从服务器收到的消息." 这个错误呢?请指教一下 解决方案 asp不会,jsp会一点,祝你好运!

看实例学VFP:Timer控件实例-动画

在vfp基础教程-计时器(timer)中已经对计时器控件的属性及方法等做了介绍,这个控件的应用重点是它的Interval属性和timer事件.本文来补充一个例子,运行时在计时器控件的timer事件中控制label控件的位置形成动画效果,如下图: 本例通过在timer事件中操作标签控件的top属性来实现标签上下移动的动画.如果要制作左右移动的动画,原理是一样的,在timer事件中操作标签控件的left属性即可. 本例制作过程: 一.新建表单,width属性值设为290,height属性值设为160

ASP.NET AJAX Timer控件概述

Timer 控件方案 当您要执行以下操作时,请使用 Timer 控件: 定期更新一个或多个 UpdatePanel 控件的内容,而无需刷新整个网页. 每当 Timer 控件导致回发时运行服务器上的代码. 按定义的时间间隔将整个网页同步发布到 Web 服务器上. 背景 Timer 控件是一个服务器控件,它会将一个 JavaScript 组件嵌入到网页中 .当经过 Interval 属性中定义的时间间隔时,该 JavaScript 组件将从浏览器 启动回发.您可以在运行于服务器上的代码中设置 Tim

ASP.NET AJAX入门系列(11):在多个UpdatePanle中使用Timer控件

本文将使用Timer控件更新两个UpdatePanel控件,Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel的触发器,翻译自官方文档. 1.添加一个新页面并切换到设计视图. 2.如果页面没有包含ScriptManager控件,在工具箱中的AJAX Extensions标签下双击ScriptManager控件添加到页面中. 3.双击Timer控件添加到Web页面中.Timer控件可以作为UpdatePanel的触发器不管它是否在UpdatePanel中. 4

ASP.NET AJAX入门系列(10):Timer控件简单使用

本文主要通过一个简单示例,让Web页面在一定的时间间隔内局部刷新,来学习一下ASP.NET AJAX中的服务端Timer控件的简单使用. 1.添加新页面并切换到设计视图. 2.如果页面没有包含ScriptManager控件,在工具箱的AJAX Extensions标签下双击ScriptManager控件添加到页面中. 3.单击ScriptManager控件并双击UpdatePanel控件添加到页面中. 4.在UpdatePanel控件内单击并双击Timer控件添加到UpdatePanel中.Ti

timer-为什么在Forms.Timer的事件处理程序里,界面控件依然是不可访问的?

问题描述 为什么在Forms.Timer的事件处理程序里,界面控件依然是不可访问的? 为什么在System.Windows.Forms.Timer的事件处理程序里,界面控件依然是不可访问的? 为什么在System.Windows.Forms.Timer的事件处理程序里,界面控件依然是不可访问的? 为什么在System.Windows.Forms.Timer的事件处理程序里,界面控件依然是不可访问的? 解决方案 自己结贴了.是VS软件的问题,重启下居然好了,抓狂了大半天. 解决方案二: 是跨线程调

backgroundworker-c#主窗口里timer控件设定的是1分钟执行1次,为什么每分钟内会执行多次

问题描述 c#主窗口里timer控件设定的是1分钟执行1次,为什么每分钟内会执行多次 我在主窗口中添加了几个timer和backgroundwork,一一对应,用timer去监控独立线程的执行.设定每个timer1分钟执行一次,为什么会被执行多次.代码如下: private void sjsxjk_Tick(object sender, EventArgs e) { if (!SJSXJKbgw.IsBusy) //每次此独立进程还没执行完,isbusy属性仍然是 false,这是为何? { S

请教一个ToolkitScriptManager不能使用timer控件的问题

问题描述 新手请教一个问题:我使用的vs2010,我的目的是使用AJAXControlToolkit里面的tabcontainer组件,建立ajax的tab选项卡,然后选项卡上面有个label,设定个timer,定时刷新这个label,但是发现要想使用AJAXControlToolkit,就得引用toolkitscriptmanager,但是如果使用timer控件,就得引用ScriptManager,但是2个都引用就会报错说只能引用一个ScriptManager,请问这个问题怎么好解决呢?单独引