有一个线程A循环向Com1串口发送命令,同样有个线程B在循环接受com1发来的数据,而主线程也会对com1发送单条命令。
当主程序发送的时候,A线程暂停,等主程序发完接受回复后再开始运转,我用过很多方式,Suspend\Resume,sleep,mutex,鞥等,但是当A线程重新启动后,发送的命令收不到数据了。
这样的多线程有没有好的模式,谢谢!
当主程序发送的时候,A线程暂停,等主程序发完接受回复后再开始运转,我用过很多方式,Suspend\Resume,sleep,mutex,鞥等,但是当A线程重新启动后,发送的命令收不到数据了。
这样的多线程有没有好的模式,谢谢!
解决建议:将写入命令放在队列中,使用一个线程读取队列命令访问COM1。
解决建议:将写入命令放在队列中,使用一个线程读取队列命令访问COM1
lock(this) {
}如果要保持对COM口数据的及时读取,读取线程将数据将到队列中,用另一个线程解析,线程之间用Event同步。