我很难理解如何制作一个最简单的工作多线程 Qt控制台应用程序。
我已经阅读了大量关于如何使用 QThread 类的内容。他们中的一些人说子类 QThread,其他人说使用 QThread 的工作类包装器。
经过几次尝试和重试,我仍然无法制作一个有效的多线程 Qt 控制台应用程序。
现在我不需要任何花哨的 Qt Gui。
有人可以帮我填写示例代码的线程部分吗?它一次只从文本文件中读取一行,其想法是目前不忙的每个线程(我想使用 4 个线程)将尽快使用 std::cout 将该行打印到标准输出。只需打印它,现在没有其他花哨的处理东西来让我保持简单。
#include <QCoreApplication>
#include <QFile>
#include <iostream>
/* QThread stuff here */
/* Don't know how to make it */
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
/* Create four instances of threads here and
put them to wait readed lines */
QFile file("file.txt");
file.open(QIODevice::ReadOnly | QIODevice::Text);
while(!file.atEnd()) {
/* Read lines here but where should they be saved?
Into a global variable like QList<QByteArray> list ?
So that each thread can read them from there or where ???? */
??? = file.readLine();
}
file.close();
a.exit();
}