C#程序通信过程中 突然停止 只主窗口显示

今天调试程序,发现一个问题,我无法理解,设置的窗口在通讯设置正确后,开始进行通信,而且定了一个Timer,每隔一段时间,加通信的任务。程序以前出现过这样的问题,但是我没注意,现在发现,只要程序在大量下载数据之后,通信突然停掉,看不到硬件上的发送和接收,我这边是主,所以应该是我这边没有发了,所以才没有回答的数据,但是程序还在运行中。端口断开,应该是有提示的啊,为什么什么都没有呢?现在都没有发送了。

I know,回来再说。

回来了,为什么会这样,因为我的执行程序根本没有调用,或者说,因为机缘巧合或者说是必然。

程序的执行时这样的:初始化执行任务,调用执行(加了一把锁,一次一个),执行完反馈并检查是否还有需要执行的任务,若有,再调用执行。

上述是一个过程,而其中的问题在于,程序是有不断的往里面加任务或者根据用户需要添加任务。通信停止的原因在于,某一时刻,执行任务的列表为空,当然就没有执行了,而我后来添加的执行任务,没有调用执行,只是一味的添加,so,造成了这后果。

逻辑不缜密啊,该打该打。。。


但是问题其实并不是像我想的那样,上述是一个问题,但其跟本问题是,我的锁机制,一次一个,maybe任务太多等我不知道的原因,导致,任务在里面没执行完就死了,造成死锁,其他任务进不去,无法继续执行。

可执行的任务不执行,其他任务也无法进入,造成通信死掉。


调试时发现,原来进入了,catch语句里的异常里,所以无论我重启通信端口还是重置任务列表,还是捕捉到死锁后,(愚昧的)解锁程序都通信不起来,只能重新跑。

不知道,不知道,哪里出了问题,还是程序本身,抓狂生气


程序越来越不行了,以前是被要折腾的要死要活才出问题,现在变得稀松平常了。感觉自己越做越慢了



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值