串行端口数据接收线程在执行前结束



我注意到,当新线程从serialport Data received事件启动时,如果执行计划只包括几个可能更改某些值并在另一个端口上发送的方法,那么它可以正常工作,但如果该方法需要做更广泛的处理,如在另一端口上发送和等待ACK,再次发送并接收256字节数据包中大小适中的数据量(20KB),则线程只是在某个地方停止,永远不会完成。当代码被逐步执行时,它似乎工作得很好。我读过其他人问这个问题的话题,但没有"解决方案",只能使用定时器等另一种方法来轮询端口。我甚至做了一个变通办法,让主线程"轮询"一个从事件中更改的变量,而不是让事件来完成这项工作,这似乎是可行的,但当使用windows窗体时,我不得不创建一个新线程,它似乎在做同样的事情,要么不完成代码,要么不执行新线程,这只是一个暂时的外观,它会永远运行,检查变量。如果需要的话,我可以提供代码,只是想了解如何正确解决这个问题。

这里没有人知道问题的答案或解释限制,但我能够在循环检查变量更改并启动相同的线程时使用计时器来解决这些问题。

最新更新