Qt线程不工作
Qt thread does not work
我有两个来自不同类的对象:"master"answers"slave"。我试图在master.cpp中创建一个线程,在那里我已经声明了slave对象。问题是线程没有启动
QThreadEx daqThread;
daqSlave daqslv;
daqslv.doSetup(daqThread);
daqslv.moveToThread(&daqThread);
daqThread.start(QThread::NormalPriority);
doSetup()是:
void daqSlave::doSetup(QThreadEx &cThread) const
{
qDebug()<<"daqSlave::doSetup()-begin";
QObject::connect(&cThread, SIGNAL(started()),
this, SLOT(avvio()));
qDebug()<<"daqSlave::doSetup()-end";
}
"doSetup()"工作,但"avvio()"不。有人能告诉我为什么吗?谢谢你!Alessia
你有几个问题:
-
QThread
和daqSlave
实例将超出作用域。使用new
并给线程一个父对象。moveToThread()
自动重父daqSlv到线程,所以这不是一个问题。
doSetup()
函数在你把worker移到线程之前被调用。在呼叫QObject::connect()
时指定Qt::QueuedConnection
来解决这个问题。相关文章:
- 工作线程在执行太快后永久休眠
- ZeroMQ 在使用 std::thread 创建工作线程时崩溃
- 工作线程一直在等待,condition_variable甚至调用了notify_all
- 使用 std::atomic 标志和 std::condition_variable 在工作线程上等待
- Qt-工作线程崩溃时将cv::Mat转换为QImage
- 无法将接口从主线程封送到工作线程
- 在 C++ 中扩展作业/工作线程多线程系统
- Qt C++ - 如何将数据从工作线程传递到主线程?
- 从线程池工作线程使用 GetQueuedCompletionStatus 的奇怪行为
- QtThread:I/O 队列的工作线程
- 将信号从工作线程类连接到控制器类 - QThreads
- Qt:工作线程和 GUI 事件之间的关系
- 将数据集几乎平均分配给工作线程
- 在为工作线程访问 lambda 中捕获的向量列表中的元素引用时,是否需要互斥锁?
- 如何将C++ dll 在 C# 窗口窗体应用程序下的工作线程中运行
- 在Qt中使用工作线程将数据写入文件的正确方法是什么?
- 在工作线程中使用 QT 主窗口
- C++,pthreads:如何从多个线程停止工作线程
- 同步主线程和工作线程
- 从工作线程更新QtCharts的正确方法