问题:在分线程中发出的数出现重复现象,每个数被发送了两次。
用QReadWriteLock 和QMutex 问题同样。
- C/C++ code
全局变量:QList <QString> m_zfList;//数据缓冲列表bool flag_start;//开始转发标志QReadWriteLock lock;QMutex mutex;主线程接收:if(flag_start) { mutex.lock(); m_zfList.push_back(m_dataNew.T); mutex.unlock() };分线程转发:while(flag_start) { char buf[25]; int b = 10; mutex.lock(); if(!m_zfList.isEmpty()) { float temp = m_zfList.takeLast(); gcvt(temp,b,buf); myCom_288->write(buf); } mutex.unlock(); }
求教,该如何解决?谢谢!
------解决方案--------------------
因为你的次线程takeLast之后,主线程又往列表里push_back了!
------解决方案--------------------
m_zfList.push_back(m_dataNew.T);
是不是 m_dataNew.T 这个变量的处理问题啊, 重复的被加入到列表中了。