一个令人费解的问题,大家帮帮忙吧
我有一个串口通信程序,有一个主界面,显示采集的数据以及一些配置,主界面有一个状态栏,用来显示通信的过程信息。另外还有一个通信线程、一个数据处理线程和一个服务线程。通信线程主要完成通信任务,取到原始数据帧之后通过线程消息发给数据处理线程对数据进行解释和存储,然后整个数据流程在关键步骤会将提示信息以线程消息的形式发送给服务线程,服务线程负责将这些提示或日志类信息显示到主界面状态栏和记录到日志里面。
为了保证这个程序死掉而导致通信中断,我又写了一个windows 服务,用来监视这个程序,如果通信程序超过一段时间不更新数据库,则重启之,如果重启失败则直接重启电脑,在开机后服务自动运行,也同时启动通信程序进行采集工作并继续监视之。这个windows服务也会将自己的一些关键动作记录到一个log文件中,以便统计程序的稳定性。
出现的问题是这样的:服务在运行一段之后就不再写日志了,而被监视的采集程序的界面居然没有了,日志也不记录了,但我看了一下数据库,还在实时更新着,说明还在运行。而查看服务,还处于启动运行状态。
另外说一下,原来我用另一个程序实现监视功能,没有出现过这个问题,后来因为开机后如果有登录密码,应用程序无法启动,而服务可以,所以改成服务了,结果就出现这个问题
不知道这究竟是为什么?哪位能指点一二呢?