[英]how to create a detached thread with QThread, like in std::thread
我已经使用 QThread 在 QT 中创建了一个线程,但是线程的父线程在线程完成之前退出,而线程本身正在无限运行。
//mainwindow.cpp
void MainWindow::showEvent(QShowEvent *ev)
{
QMainWindow::showEvent(ev);
showEventHelper();
}
void MainWindow::showEventHelper()
{
//back-end thread
ServerStart *serverstart = new ServerStart();//initializing a pointer to my class
QThread thread;
serverstart->moveToThread(&thread);
QObject::connect(&thread, &QThread::started, serverstart, &ServerStart::run);
thread.start();
//in std::thread i used to detache it like so:
//std::thread worker(serverMain);
//worker.detach();
}
重要提示:我正在制作一个 GUI 项目。 我的无限线程在一个 onShow() 方法中,该方法需要退出才能让应用程序继续并制作 UI。 而且我也想以后从线程向主线程发送信号,主线程应该能够根据信号响应和修改UI。
我如何在 QT 中做同样的事情?
您不能,但是根据正确QThread
使用的 KDAB 文档,您可以通过将QThread::finished
连接到QThead::deleteLater
来模拟这种行为,如他们的QThread
文档所示https://www.kdab.com/wp-内容/上传/故事/multithreading-with-qt-1.pdf
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.