问题描述
|
在Qt中如何在QThreadPool中保持线程活动?据我所知,只有一个选项可以运行QRunnable,并且有人告诉我他们无法控制它们所在的线程。我如何使用线程池使套接字保持活动状态并准备读写?
解决方法
QThreadPool管理自己的线程。 QT Doc说
QThreadPool管理和回收
单个QThread对象可提供帮助
减少中的线程创建成本
使用线程的程序。
因此,您不应尝试使线程保持活动状态。这打破了线程池的目的。
QT套接字还设计为与主事件循环配合使用。您为什么不尝试使用它们?
, a)仅使用QThread后代,而不是线程池。
b)不要将套接字绑定到线程-当select()返回时,分配一个线程来处理套接字事件。
Rgds,
马丁