class StreamReader : public QThread {
SomeClass *someClass;
protected:
void run()
{
for (;; )
{
while (!someClass->process.canReadLine())
QThread::yieldCurrentThread();
QString str = QString(someClass->process.readLine());
qDebug() << "read stdout" << str;
}
}
public:
StreamReader(SomeClass *someClass);
};
class SomeClass {
StreamReader streamReader; // создаётся в конструкторе передаётся this
QProcess process;
void some_method()
{
process.start(...);
process.waitForStarted(INT_MAX);
streamReader.start(); // Thread
for (;; ) /* QApplication::processEvents() */;
};
если расскоментировать processEvents то сообщения от программы выводятся, а если нет то StreamReader ничего не считыват. в чём может быть проблема?