所以我在下面有一些示例代码。
workerThread = new QThread();
m_worker->moveToThread( workerThread );
connect( workerThread , SIGNAL( started() ), m_worker, SLOT( createObject() ) );
connect( m_worker, SIGNAL( created() ), this, SLOT( objectReceived() ) );
workerThread->start();
它目前通过用 new 初始化 QThread 来使用它。如果这是它使用的唯一上下文,我不能只使用“QThread workerThread”,引用它的地址进行连接,然后就完成了吗?这将使程序免于将线程放在堆上。我注意到如果我不使用 new 并使用我列出的方式,我会收到以下错误“QThread: Destroyed while thread is still running”。除了我列出的更改之外,代码中没有任何更改。如果我使用 new 我不会收到此错误。有显着差异吗?