6

我正在寻找一些关于使用QThreadPool. 这是我使用它的方式:

QThreadPool *thread_pool = QThreadPool::globalInstance();
MyThread *thread = new MyThread();
thread_pool->start(thread);


class MyThread : public QRunnable {
public:
    MyThread();
    ~MyThread();
    void run();
};

void MyThread::run()
{
    qDebug() << "MyThread";
}

以上是正确的做法吗?
PS:我waitForDone在参考中看到了,我应该什么时候打电话waitForDone

4

1 回答 1

7

这几乎是正确的,只有一个例外。QRunnable不是线程,你不应该打电话给你的班级MyThreadMyRunnable或者MyTask更正确。

请注意,您的代码与文档页面上的示例几乎相同。文档是简明示例的最佳来源。

waitForDone当您想等到所有可运行文件都被处理时,您应该调用。这取决于您的应用程序的架构。通常是在您创建并启动所有QRunnables 并希望使用它们的结果时。

于 2013-06-21T13:24:21.100 回答