我想从在与其他线程不同的线程中运行的递归函数返回。
我尝试使用递归互斥锁,但它不起作用!
我们怎样才能实现它?
bool stop = false;
QMutex mutex(QMutex::Recursive);
int count = 1;
void worker_run () {
QMutexLocker locker(&mutex);
if(stop)
return;
qDebug () << count++;
worker_run();
}
void worker_stop () {
QMutexLocker locker(&mutex);
stop = true;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QtConcurrent::run(&worker_run);
QtConcurrent::run(&worker_stop);
return a.exec();
}