Timer运行一段时间后失效

问题描述

发生一件很怪异的事,用Timer定时每隔3秒钟进行一次数据同步操作,一开始很正常,但是过了一段时间后Timer中的代码却不运行了,然后查看Timer的状态,确实还是启动状态,但是就是不运行Timer中的事件,这是怎么回事呢,在客户的一台电脑上发生这个现象,其他电脑都没有示例代码privatevoidtmr_work_Tick(objectsender,EventArgse){tmr_work.Enable=false;try{//这里是数据同步操作}catch(Exceptionex){}finally{tmr_work.Enable=true;}}

解决方案

解决方案二:
如果你懒得在开发的机器上来想法重现用户的bug,那么就要在用户的机器上部署一个没有catch{}的版本。可能你没有搞清楚try...catch的目的是什么。如果要发布一个程序,那么也许会在用户面前隐瞒一些bug。但是即使如此,也就是在整个系统的表现层(例如UnhandledException事件处理中)捕获异常并给用户另外一套对应的假提示。而你的代码,如果你在解决bug时也这样写try..catch,那么我相信你就没有负责任地把程序bug“捉出来”。对用户隐瞒信息的伎俩,现在变成糊弄自己了!这里不可能胡乱猜出bug是什么。而是先要学会让bug能够“出来”(而不是带病进行后续操作)的基本开发素质。
解决方案三:
可能你会找到理由说“我只是在一个用户的机器上有bug,其它电脑都没有啊。我只想要猜出来的结果让我试试就行了”。但是程序如果因为开发和测试质量低而又bug时,假设碰上负责任的程序员还这样说,那么这个公司一定会很悲剧的。
解决方案四:
其实很可能是占用的内存未及时释放造成的当内存被耗尽时,程序就会被挂起,甚至退出那么异常处理会生效吗?我看悬!即便能生效,程序都停止了,异常的可能原因还能展示出来吗?只要使用Timer,基本上都会碰到这种问题。估计高手们都不用Timer的
解决方案五:
引用楼主ltaixxx的回复:

代码却不运行了,然后查看Timer的状态,确实还是启动状态,但是就是不运行Timer中的事件,这是怎么回事呢

程序如果崩溃,就不会能够”查看Timer状态是启动状态“了。程序崩溃了,至少代表着你不隐瞒bug,那么在后续debug的操作上才能前进一大步。
解决方案六:
这个诡异的问题,实际上很可能不会是你贴出的”这里是数据同步操作“这里的代码造成的。你贴出的说明不了任何问题。我只是从你贴出代码,看到一个公司的技术经理会怎样让你将所有代码进行整改的问题。

时间: 2024-07-29 04:09:40

Timer运行一段时间后失效的相关文章

java-项目运行一段时间后session数据失效问题

问题描述 项目运行一段时间后session数据失效问题 最近struts2+spring做开发,项目启动后登陆操作一切正常,一天后再登陆后操作session里的数据老是失效不存在,但是页面又显示正常, 纠结了很久找不到原因,还请大神们帮忙看下. 获取session数据是用struts2的方法,代码如下,服务器是用的jboss7 HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session =

Js代码失效问题,代码运行一段时间后,突然报错,请各位帮忙看一下,谢谢

问题描述 Js代码失效问题,代码运行一段时间后,突然报错,请各位帮忙看一下,谢谢 代码如下: <%@ page language="java" import="java.util.*" pageEncoding="gbk"%> <%@include file="/common/taglibs.jsp"%> <!DOCTYPE html> <html> <head> &

内存溢出 tomcat-项目运行一段时间后网页就打不开了,有时候没有报错,有时候会报下面的错误,求大神指教

问题描述 项目运行一段时间后网页就打不开了,有时候没有报错,有时候会报下面的错误,求大神指教 不知道是不是跟内存溢出有关系 解决方案 这应该不是内存溢出问题,报的是空指针,有可能的是某些请求参数时间过长失效 解决方案二: 空指针异常 看一下是否有空指针 如果没有 重启服务器 解决方案三: 空指针异常 看一下是否有空指针 如果没有 重启服务器

mybatis-系统运行一段时间后,无法与数据库做任何交互,控制台也没有报错,为什么呢?怎么解决?

问题描述 系统运行一段时间后,无法与数据库做任何交互,控制台也没有报错,为什么呢?怎么解决? 如题,系统运行一段时间就会挂掉,请求一直进入到开始跟数据库交互的地方,停止了,会是什么原因呢? 解决方案 查 LOG 吧,只从现象上别人没有办法分析. 估计是有隐藏比较深的错误出现了,特别是小范围的内存操作越界. 解决方案二: 你用的什么数据源呢?会不会是连接失效什么的! 解决方案三: 你没有配置数据库连接池

C#写从log文件向access自动导入数据的窗口程序,运行一段时间后停止工作,问题事件名称:CLR20r3,求教各位该怎么解决?谢谢

问题描述 各位前辈好:我近日用C#写了个小窗口程序,功能是从log文件向access自动导入数据,并设置间隔一段时间自动运行.但是现在发现,程序起初可以正常实现导入功能,但是运行一段时间后就会停止,问题事件名称:CLR20r3,详细信息如下:问题签名01:readandsyncmonitoringdata.exe问题签名02:1.0.0.0问题签名03:54717fa3问题签名04:System.Data问题签名05:4.0.30319.18408问题签名06:52311175问题签名07:1b

tomcat-Tomcate6 运行一段时间后 某些Action 报 404错误

问题描述 Tomcate6 运行一段时间后 某些Action 报 404错误 centos操作系统 .Tomcate6 服务器,运行一段时间后有几个Action报 404错误 No result defined for action and result input前端用了 urlrewrite 做伪静态 <rule> <from>/desktop/index</from> <to>/desktop/index.action</to> </

c++指针变量问题,运行一段时间后指针为空?

问题描述 c++指针变量问题,运行一段时间后指针为空? c++指针变量问题,运行一段时间后指针为空.我的变量是直接定义的不涉及new和delete,有没有办法检测变量,看它在哪里被赋值为空的?? 比如 数据改变断点可以吗,这个怎么用? 解决方案 所谓断点就是告诉调试器在何处暂时程序的运行,以便查看程序的状态以及浏览和修改变量的值等,但是在不同的运行环境中断点的类型是不一样的,在vc++6.0中用于c++调试的断点可一分为3个类型,位置断点,数据断点,条件断点. 位置断点是指示程序运行的中断的代码

程序运行一段时间后,界面不刷新 mfc

问题描述 程序运行一段时间后,界面不刷新 mfc 用vc2008做的程序,在自建的线程里,处理蓝牙虚拟串口通信的接收数据和实时显示! 发现程序跑40分钟左右后,界面变灰!但程序没死,数据通信显示正常.其他控件就没了.移动鼠标可以看到,也可以操作!感觉就是主界面不重绘了!如图: 程序运行时看任务管理器的内存,也不大!应该不是内存泄漏的问题 找不出原因了!网上用PeekMessage的方法试了,还是没用!谁能帮忙给个解答! 这个线程机制以前用串口通信和usb虚拟串口通信都是正常的,没出现过这个问题!

通讯-C# 客户端和服务端连接时出现服务端运行一段时间后切断连接

问题描述 C# 客户端和服务端连接时出现服务端运行一段时间后切断连接 各位大神,现在遇到一个问题: 我的客户端程序与服务端进行数据通讯,用到的通讯协议为Modbus tcp和FTP, 但现在在运行的过程中出现一个问题,就是我的客户端程序运行一段时间后,服务端直接切断了与我客户端程序的连接(此时我的客户端程序也没有报错,可是我使用了try,catch语句进行报错的),与此同时,我通过输入FTP地址直接登录也不行,提示的错误为与服务器的连接被重置,这个问题是处在我的客户端程序还是服务端?我查了两天的