Qt-插槽完成后不要破坏线程
有没有办法防止在插槽中创建的线程在插槽完成后被破坏Qt-插槽完成后不要破坏线程,qt,qt4,qthread,Qt,Qt4,Qthread,有没有办法防止在插槽中创建的线程在插槽完成后被破坏 <widget.cpp> ... void Widget::<slot_name>() { ... ThreadTask Watcher; //ThreadTask is defined in header file QThread WatcherThread; Watcher.moveToThread(&Watch
<widget.cpp>
...
void Widget::<slot_name>()
{
...
ThreadTask Watcher; //ThreadTask is defined in header file
QThread WatcherThread;
Watcher.moveToThread(&WatcherThread);
QObject::connect ...
WatcherThread.start();
...
}
我知道我可以在插槽外部声明线程,并且只能从插槽启动它,但问题是,如果再次触发同一插槽,我想创建另一个线程。使用:
请注意,为了避免内存泄漏,必须在线程执行完成后将其删除
如果使用以下代码,Qt可以在线程完成时自动删除线程:
connect(WatcherThread , SIGNAL(finished()),
WatcherThread , SLOT(deleteLater()));
使用:
请注意,为了避免内存泄漏,必须在线程执行完成后将其删除
如果使用以下代码,Qt可以在线程完成时自动删除线程:
connect(WatcherThread , SIGNAL(finished()),
WatcherThread , SLOT(deleteLater()));
你似乎不知道一些关于堆和堆栈分配的C++基础知识。阅读一些优秀的C++书籍,因为至少需要使用C++的基础知识来使用QTTHORE,我过去一直在做很多脚本,最近才被移动到OOP,但是我一直在思考,就像脚本一样。你似乎不知道一些关于堆和堆栈分配的C++基础知识。阅读一些优秀的C++书籍,因为你至少需要C++的基础来使用QTE,这是真的,我过去做了很多脚本,最近才被移动到OOP,但是我一直在思考,就像脚本一样。谢谢,你真了不起,它的工作非常完美。我是OOP新手。ThreadTask呢?它也应该被分配到HeapyYou是对的,我认为很明显对ThreadTask做同样的事情谢谢你,你太棒了,它工作得很完美!我是OOP新手。ThreadTask呢?它也应该被分配到heapYou是正确的,我认为很明显对ThreadTask也这样做