[英]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.