一般2种方法
//balabalaba.....
QEventLoop loop;
QFutureWatcher<bool> watcher;
QObject::connect(&watcher, &QFutureWatcher<bool>::finished, &loop, &QEventL
oop::quit);
auto f = []{.....};
QFuture<bool> future = QtConcurrent::run(QThreadPool::globalInstance(), f,
m_entity.get());
watcher.setFuture(future);
loop.exec();
//balabalabaa....
QEventLoop loop;
WorkerThread *workerThread = new WorkerThread(this);
connect(workerThread, &WorkerThread::resultReady, this, &MyObject::han
dleResults);
connect(workerThread, &WorkerThread::finished, workerThread, &QObject:
:deleteLater);
connect(workerThread, &WorkerThread::finished, &loop, &QEventLoop::qu
it);
workerThread->start();
loop.exec();
【 在 scanworld (臭蛋超人) 的大作中提到: 】
: 标 题: Re: 想用qtimeedit做一个倒计时 倒计时的过程中执行其它任务 倒
: 发信站: 水木社区 (Wed May 13 02:03:29 2020), 站内
:
:
: 【 在 hgoldfish 的大作中提到: 】
: : 看看我写的,
: :
https://hgoldfish.com/blogs/article/78/: : 建议你弄个线程执行这种高耗时操作。线程里面大致这样写:
: : ...................
: 我刚用多线程试了下 在子线程里开了一个timer用来计时
: 主线程里用来做别的操作 遇到了一个问题 就是长时
: 因为我是用按钮触发执行的 所以这个执行是在按钮的clicked()做的 也就是执行期间这个按钮没有完全释放
: 计时结束的时候主线程里边的标志改了 停止执行这个按钮才释放
: 好的方式是在主线程里计时,子线程去做执行吗
:
: --
:
: ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 120.244.24.*]
--
FROM 171.83.95.*