CDT*_*CDT 14 c++ concurrency qt qthread
QThreads和QRunnable有什么区别?
什么时候应该使用QThread和QRunnable?
Ale*_*scu 12
QThread 可以运行一个事件循环, QRunnable 没有,所以不要将它用于设计为具有事件循环的任务。此外,作为 QObject,QRunnable 没有与其他组件显式通信的内置方法;您必须使用低级线程原语(例如用于收集结果的互斥保护队列等)手动编写代码。使用 QThread,您可以使用线程安全的信号和插槽。
的QRunnable类和QtConcurrent::run()功能非常适合于我们想要在一个或多个次级线程,而不需要由提供的QThread全功率和灵活性,以执行一些后台处理的情况.
来自Mark Summerfield的" 高级Qt编程:使用C++和Qt 4创建出色的软件 "