QtConcurrent::run()启用一个单独线程,并发执行

Concurrent是并发的意思,QtConcurrent是一个命名空间,提供了一些高级的 API,使得在编写多线程的时候,无需使用低级线程原语,如读写锁,等待条件或信号,简单易用。

QFuture<T> QtConcurrent::run(Function function, ...)
QFuture<T> QtConcurrent::run(QThreadPool *pool, Function function, ...)

简单的说,QtConcurrent::run()函数会在一个单独的线程中运行一个函数,并且该线程取自默认的全局QThreadPool(线程池),可以使用QFuture和QFutureWatcher类来监视函数状态。要使用专用线程池,可以将QThreadPool作为第一个参数传递(第二种写法)。
QtConcurrent::run()启用一个单独线程,并发执行_第1张图片
这里使用了Lambda表达式在一个单独线程里调用某耗时的SDK接口。

QtConcurrent::run([=]() {
	int res = SDKGetInfo(meetNum.toStdString().c_str());
	});

你可能感兴趣的:(QT,c++,qt)