多线程串口通信的奇怪问题(主线程进行大数据量的操作会丢失部分串口返回的数据,否则一切正常),请高手帮忙!!!!!
关于串口的实时通信程序,与串口的通信单独写在一个子线程中。通过SPCOMM与串口的单片机进行交互。在子线程中读取数据是采用定量分批读取。每次从串口读取一定量的数据放在缓冲区,处理完毕后,再次从串口读取,直到没有可以处理的数据。
在子线程运行过程中(即与串口通信中),如果主线程执行的操作用时不长或数据量不大时,串口通信很正常。子线程可以将所有数据读回,可是当主线程执行的操作用时长(如执行一个很长的循环)或数据量很大(从数据库中读取几千条记录)时,子线程就不能将所有的数据都读回。
不能理解为什么会出现这样的情况,本人怀疑与内存或SPCOMM有关,可是这方面的知识匮乏,只好请教各位高手了.