终于搞定死循环。下面谈一谈解决过程
还是挺麻烦,感觉很无助的过程。因为本来没涉及过串口通信这块,找到的SerialPort,非常感谢原作者无私的奉献,比起微软要好多了。
首先,我怀疑了serialport。对此有点太不敬了,没怀疑自己代码,反而怀疑别人的东西。因为自己不懂这些,认为自己写的应该没问题啊,serialport里面的程序行出现了死循环,我当然就怀疑这段程序了。然后网上找了一些东西,都是跟我没相干,但死马当活马医,都试了下,结果。还是没用。
然后,无意中看到 有人说存在死锁问题。那就往这方面想,找了国人修改了死锁问题的代码,跟我用的serialport一比,发现一模一样,原来我下的serialport已经是解决了死锁问题的。但是我的确肯定是死锁,然后出不来了呀。纠结
最后,又不断测试。发现自己开了之后再关掉,没问题。问题就是我是在接收字符的消息里面调用了closeport函数想关闭。
我想会不会是因为我已经是在消息处理函数里面,而调用closeport没办法把自己给关掉。
大概是这样吧。于是,自己发送给自己的窗口一个WM_CLOSE。
然后测试,发现OK.解决了。 还是要感谢Remon Spekreijse作者,不然我对于串口编程根本无从下手。还有mrlong,liquanhai两国人的无私修订。做技术就应该向他们学习