首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QT线程同步,该怎么解决

2012-01-26 
QT线程同步问题:在分线程中发出的数出现重复现象,每个数被发送了两次。用QReadWriteLock 和QMutex 问题同样

QT线程同步
问题:在分线程中发出的数出现重复现象,每个数被发送了两次。
用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 这个变量的处理问题啊, 重复的被加入到列表中了。

热点排行