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也这样做