日期:2014-05-17  浏览次数:20932 次

请高手帮忙分析,timer的Elapsed事件不执行
cs程序,做服务器使用,应用到了多线程和线程池。程序的主要功能就是接受数据然后将数据保存到文本文件中,同时将数据转发到不同ip的服务器上。
出问题的timer(system.threading.timer)的功能是每2分钟执行一次,将接受到得数据写入文本。但是这个事件不定时的就会停止,一般会是在0点——8点之间(这个时间段能够接收到数据,但就是不写到文本文件中),过了这个时间段又会恢复正常,如果重新启动程序也会恢复正常,大家帮忙分析下出问题的原因在哪里,如何解决

------解决方案--------------------
如果程序忙,则system.threading.timer计时器有可能停止工作。。。。。。。


------解决方案--------------------
都放在try catch里都没捕捉到异常?
------解决方案--------------------
或许可以试试把代码放在Windows Service里然后部署看看会不会出错。
------解决方案--------------------
只要在使用 Timer,就必须保留对它的引用。 对于任何托管对象,如果没有对 Timer 的引用,计时器会被垃圾回收。 即使 Timer 仍处在活动状态,也会被回收。

是不是被回收了?
------解决方案--------------------
把代码贴出来让大伙看看吧
------解决方案--------------------
会不会是lock (syn)//syn是个只读的object类型实例
 这地方有问题。直觉感应。供参考