C#中的System.Timers.Timer
大家好!
我现在有个问题想向大家请教下:
我用C#4.0做了一个后台Windows服务,其中使用到了System.Timers的Timer对象,我要实现的功能如下:
1、有一台DVR硬盘摄像机,它有几个频道,每个频道都有一个摄像头,当每一个摄像头捕捉到异常情况时就会发出电邮。
2、在Windows服务中我使用了一个Timer对象定时接收从DVR发出的邮件(包括邮件内容,邮件发出的时间),并把它存放到数据库中。
3、同时我启用了另一个Timer对象来分析所接收到的邮件,比如我把这个Timer的Interval设置为30秒,则它每隔30秒就会分析在过去30秒内收到了哪些邮件,也就是从数据库中查询过去30秒内收到了哪些邮件(根据邮件的发出的时间查询),如果我将它的Interval设置为60秒,则它必须分析在过去60秒内接收到了哪些邮件,以此类推。
4、但现在的问题是,我想知道在过去30秒内是否有不同的摄像头同时都发出了邮件,比如DVR连接两个摄像头,我想知道,某一个30秒内这两个摄像头是否都发出了警报邮件,因为定时器是定时工作的,有可能所分析的数据并不是准确的,或者是我使用的方法不对。例如,摄像头1在12:55:10时发出了警报邮件,摄像头2在12:55:31时发出了警报邮件,这两个邮件确实是在30秒范围内,而我的定时器有可能是12:55:20时才经过了一个定时周期,所以如果从12:55:20算起,在过去的30秒内就只有12:55:10这个符合条件,就把12:55:31这个时间给漏掉了,但实际情况是:摄像头1和摄像头2两个发出警报邮件的时间间隔是在30秒之内的,这个问题不知道有没有什么好的方法,望各位赐教,谢谢了!
我现在有个问题想向大家请教下:
我用C#4.0做了一个后台Windows服务,其中使用到了System.Timers的Timer对象,我要实现的功能如下:
1、有一台DVR硬盘摄像机,它有几个频道,每个频道都有一个摄像头,当每一个摄像头捕捉到异常情况时就会发出电邮。
2、在Windows服务中我使用了一个Timer对象定时接收从DVR发出的邮件(包括邮件内容,邮件发出的时间),并把它存放到数据库中。
3、同时我启用了另一个Timer对象来分析所接收到的邮件,比如我把这个Timer的Interval设置为30秒,则它每隔30秒就会分析在过去30秒内收到了哪些邮件,也就是从数据库中查询过去30秒内收到了哪些邮件(根据邮件的发出的时间查询),如果我将它的Interval设置为60秒,则它必须分析在过去60秒内接收到了哪些邮件,以此类推。
4、但现在的问题是,我想知道在过去30秒内是否有不同的摄像头同时都发出了邮件,比如DVR连接两个摄像头,我想知道,某一个30秒内这两个摄像头是否都发出了警报邮件,因为定时器是定时工作的,有可能所分析的数据并不是准确的,或者是我使用的方法不对。例如,摄像头1在12:55:10时发出了警报邮件,摄像头2在12:55:31时发出了警报邮件,这两个邮件确实是在30秒范围内,而我的定时器有可能是12:55:20时才经过了一个定时周期,所以如果从12:55:20算起,在过去的30秒内就只有12:55:10这个符合条件,就把12:55:31这个时间给漏掉了,但实际情况是:摄像头1和摄像头2两个发出警报邮件的时间间隔是在30秒之内的,这个问题不知道有没有什么好的方法,望各位赐教,谢谢了!
...全文
相关推荐
详解C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用
主要介绍了详解C#中的System.Timers.Timer定时器的使用和定时自动清理内存应用,需要的朋友可以参考下
c# windows服务小实例,不能使用windows.form.timer控件,而是使用System.Timers.Timer控件
c# windows服务小实例,不能使用windows.form.timer控件,而是使用System.Timers.Timer控件,否则,在启动服务后将不能出现预期的效果,本实例在VS2005+SQL2005(SQL2008)环境下已经调试通过,望能抛砖引玉。
c# 区分几种定时器(timer)
主要介绍了c# 几种定时器(timer)的区别,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
C# Timer的多线程使用方法
使用System.Threading.Timer 使用System.Timers.Timer 分别举例这两个类来实现多线程的时钟,不会阻塞UI线程 例子是Winform的
详解C#中的定时器Timer类及其垃圾回收机制
主要介绍了C#中的定时器Timer类及其垃圾回收机制,讲解了Timer相关的单线程异步工作,需要的朋友可以参考下


