Serialport DataRecieved线程在执行之前结束

时间:2017-11-14 20:21:23

标签: c# multithreading events serial-port

我注意到当新线程从serialport Data receive事件启动时,如果执行计划只包含一些可能改变某些值并在另一个端口上发送的方法,那么它工作正常,但是如果方法需要进行更广泛的处理,比如在另一个端口上发送并等待ACK,再次发送并接收大量数据(20KB)的256字节数据包,然后线程就会停在某处并且永远不会完成。当代码逐步通过它似乎工作正常。我已经阅读了人们询问此问题的其他主题但是没有“解决方案”只是使用另一种方法,如计时器来轮询端口。我甚至做了一个解决方法,让主线程“轮询”一个变量从事件改变而不是让事件完成工作,这似乎工作,但是当使用Windows窗体我必须创建一个新的线程,似乎做同样的事情,要么没有完成代码,要么没有执行新的线程,这只是一个永远运行检查变量的外观。如果需要,我可以提供代码,只是想要了解如何正确解决这个问题。

1 个答案:

答案 0 :(得分:-1)

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

相关问题