本文整理汇总了C++中QThread::deleteLater方法的典型用法代码示例。如果您正苦于以下问题:C++ QThread::deleteLater方法的具体用法?C++ QThread::deleteLater怎么用?C++ QThread::deleteLater使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QThread
的用法示例。
在下文中一共展示了QThread::deleteLater方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: onThreadTerminated
void RyProxyServer::onThreadTerminated(){
//qDebug()<<"thread terminated";
QThread *t = (QThread*)sender();
if(t){
t->deleteLater();
}
}
示例2: threadFinished
void DatabaseQuery::threadFinished()
{
QThread *thread = qobject_cast<QThread *>(QObject::sender());
qDebug() << "Thread " << thread << " finished";
if (thread) {
thread->deleteLater();
}
}
示例3: on_ListenClosed
/**
* @brief This is a slot function. when a listening thread is terminated,
* the thread itself will be deleted here. Some cleanning works is also needed.
* @fn zp_net_Engine::on_ListenClosed
* @param id the terminated thread id.
*/
void zp_net_Engine::on_ListenClosed(QString id)
{
//m_mutex_listen.lock();
if (m_map_netListenThreads.find(id)!=m_map_netListenThreads.end())
{
//Clean objects;
zp_netListenThread * pListenObj = m_map_netListenThreads[id];
QThread * pThread = m_map_netInternalListenThreads[id];
m_map_netListenThreads.remove(id);
m_map_netInternalListenThreads.remove(id);
//disconnect signals;
disconnect(this,&zp_net_Engine::startListen,pListenObj,&zp_netListenThread::startListen);
disconnect(this,&zp_net_Engine::stopListen,pListenObj,&zp_netListenThread::stopListen);
disconnect(pListenObj,&zp_netListenThread::evt_Message,this,&zp_net_Engine::evt_Message);
disconnect(pListenObj,&zp_netListenThread::evt_ListenClosed,this,&zp_net_Engine::on_ListenClosed);
disconnect(pListenObj,&zp_netListenThread::evt_NewClientArrived,this,&zp_net_Engine::on_New_Arrived_Client);
pListenObj->deleteLater();
pThread->quit();
pThread->wait();
pThread->deleteLater();
}
//m_mutex_listen.unlock();
}
示例4: run
//.........这里部分代码省略.........
if (new_composition && composition.isEmpty()) {
dtkFatal() << "Empty composition, abort" ;
d->status = 1;
return;
}
dtkDebug() << "got composition from controller:" << composition;
if (new_composition) {
dtkDebug() << "new composition";
if (size > 1) {
dtkDebug() << "send composition to our slaves";
for (int i=1; i< size; i++) {
d->communicator_i->send(composition,i,0);
}
}
dtkDebug() << "parse composition" ;
d->reader->readString(composition);
} else {
dtkInfo() << "composition hasn't changed";
for (int i=1; i< size; i++)
d->communicator_i->send(QString("rerun"),i,0);
}
if (new_composition) {
if (dtkComposerNodeRemote *remote = dynamic_cast<dtkComposerNodeRemote *>(d->scene->root()->nodes().first()->wrapee())) {
//FIXME: can we remove this ?
// this->communicator()->setProperty("jobid",this->jobId());
remote->setSlave(this);
remote->setJob(this->jobId());
remote->setCommunicator(d->communicator_i);
} else {
dtkFatal() << "Can't find remote node in composition, abort";
d->status = 1;
return;
}
}
dtkDebug() << "run composition" ;
if (QThread::currentThread() == qApp->thread()) {
dtkTrace() << "running on main thread, create a thread for the evaluator" ;
QThread *workerThread = new QThread(this);
QObject::connect(workerThread, SIGNAL(started()), d->evaluator, SLOT(run()), Qt::DirectConnection);
QObject::connect(d->evaluator, SIGNAL(evaluationStopped()), workerThread, SLOT(quit()));
QEventLoop loop;
loop.connect(d->evaluator, SIGNAL(evaluationStopped()), &loop, SLOT(quit()));
loop.connect(qApp, SIGNAL(aboutToQuit()), &loop, SLOT(quit()));
this->socket()->moveToThread(workerThread);
workerThread->start();
loop.exec();
workerThread->wait();
workerThread->deleteLater();
} else {
dtkTrace() << "running on dedicated thread,run the evaluator" ;
d->evaluator->run_static();
}
dtkDebug() << "finished" ;
} else {
QString composition;
d->communicator_i->receive(composition,0,0);
if (composition != "rerun") {
dtkDebug() << "new/changed composition, read" ;
dtkDebug() << " composition is " << composition ;
d->reader->readString(composition);
dtkDebug() << "read done" ;
} else {
dtkDebug() << "reuse composition" ;
}
if (dtkComposerNodeRemote *remote = dynamic_cast<dtkComposerNodeRemote *>(d->scene->root()->nodes().first()->wrapee())) {
remote->setSlave(this);
remote->setJob(this->jobId());
remote->setCommunicator(d->communicator_i);
dtkDebug() << "run composition" ;
QThread *workerThread = new QThread(this);
QObject::connect(workerThread, SIGNAL(started()), d->evaluator, SLOT(run()), Qt::DirectConnection);
QObject::connect(d->evaluator, SIGNAL(evaluationStopped()), workerThread, SLOT(quit()));
QEventLoop loop;
loop.connect(d->evaluator, SIGNAL(evaluationStopped()), &loop, SLOT(quit()));
loop.connect(qApp, SIGNAL(aboutToQuit()), &loop, SLOT(quit()));
workerThread->start();
loop.exec();
workerThread->wait();
workerThread->deleteLater();
// d->evaluator->run_static();
dtkDebug() << "finished" ;
} else {
dtkFatal() << "Can't find remote node in composition, abort";
d->status = 1;
return;
}
}
}
示例5: jsonPrepared
void OutputItemContentWidget::jsonPrepared()
{
// delete thread, that emits this signal
QThread *thread = static_cast<QThread *>(sender());
thread->deleteLater();
}
示例6: columnFinished
void ConvDistThread :: columnFinished (void)
{
qDebug () << __PRETTY_FUNCTION__;
QThread * thr = qobject_cast<QThread *>(this->sender());
thr->deleteLater();
}