当前位置:编程学习 > wap >>

QT 两个线程同步问题

WriteThread负责将QMap<QString, QString>中的内容写入"record.yzj"文件, ReadThread负责将"record.yzj"的内容显示在QTreeWidget上。
WriteThread的run函数为:
forever{
sleep(2); // 每两秒写入一次
mutex.lock();

文件写入

mutex.unlock();
}

ReadThread的run函数为:
forever{
sleep(2);
mutex.lock();

if(文件不存在)
mutex.unlock();
else{
将内容显示在控件上
mutex.unlock();
}

但是程序执行时,可以观察到record.yzj中的内容有变化,但是窗体都没有出现。断点执行,原来程序压根就没有进入ReadThread线程。 

请问如何解决该问题? --------------------编程问答-------------------- 没有进入ReadThread线程是啥意思啊?

还有,建议用QMutexLocker对QMutex进行加解锁操作以避免忘记解锁的问题 --------------------编程问答-------------------- 当在ReadThread线程的run函数上设定断点的时候,没有通常的那种让你按F10,F11调试的状态。
补充:移动开发 ,  Qt
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,