日期:2014-05-20  浏览次数:20818 次

程序进程偷停?请大家参与探讨一下究竟是怎么回事?
操作系统XP   SP2,数据库SQL2000
用C#2005开发的一款工业数据采集软件,现在发现系统启动的时候一切正常,采集数据-> 写库-> 写日志文件等。然后不对计算机作任何操作让程序自己工作,但几十分钟或几个小时后,发现程序没有任何反映,包括主窗体里用来刷状态栏时间显示的时间控件,就像是死掉了一样,但只要动一下鼠标,程序就又恢复正常状态了。开始是怀疑系统进入待机状态,但通过系统设置及安装键盘精灵等软件监测,系统根本就没有进入待机状态。请大家探讨一下究竟是怎么回事?

------解决方案--------------------
你最好采用些多线程,异步等的操作来改善界面响应!
------解决方案--------------------
该不是楼上的问题。多线程一旦卡死,不会如楼主所说,动下鼠标就重新启动吧/。
------解决方案--------------------
也许是界面失去响应了,所以造成程序停止在访问界面的部分。
把程序改成控制台试试。
另外,也可能是timer控件的问题。也许timer在一段时间会停止。
------解决方案--------------------
楼住,我也做过这样的东西。我是用多线程来实现的。并没有遇到过你这样的问题。
------解决方案--------------------
我现在是在主界面下放一个时钟,然而这个时钟都停止了。就像mooniscrazy(月色疯狂)说的一样,界面失去焦点了,时钟就停止了,然后用鼠标点击一下状态栏上的图标,程序就像获得了焦点又开始正常工作了。
-----------------------------------------------
难道时钟的触发和获得焦点有关系???奇怪了。
你可以在timer处理的地方写log,看看是不是真的停止了。并且还能看看是什么让它又激活了。

个人观点不是时钟出了问题,而是在显示的刷新上有问题。
你注意看一下,一旦时钟开始动作,是当前时间还是接着停止那一时刻的时间???
------解决方案--------------------
建议采用些多线程,异步等的操作来改善界面响应!!
------解决方案--------------------
好奇怪的现象,有高手知道吗?关注中