Поток отказывается выйтиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Поток отказывается выйти

Сообщение Anonymous »

Я испытываю проблему с qthread :: currentthread ()-> quit ();

main.cpp:

Код: Выделить всё

#include 
#include 
#include "myobject.h"

QThread* cThread;
MyObject* cObject;

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
cThread = new QThread();
cObject = new MyObject();
cObject->moveToThread(cThread);

QObject::connect(cThread, SIGNAL(started()),
cObject, SLOT(doWork()));

QObject::connect(cThread, SIGNAL(finished()),
cThread, SLOT(deleteLater()));

QObject::connect(cThread, SIGNAL(finished()),
cObject, SLOT(deleteLater()));

cThread->start();

return a.exec();
}
< /code>

myobject.cpp:

#include "myobject.h"

MyObject::MyObject(QObject *parent) :
QObject(parent)
{
}

void MyObject::doWork()
{
qDebug() quit(); // It is supposed to stop here, but it doesn't.
for (int i = 0; i < 1000000; i++) {
qDebug() 

myobject.h:

#ifndef MYOBJECT_H
#define MYOBJECT_H

#include 

class MyObject : public QObject
{
Q_OBJECT
public:
explicit MyObject(QObject *parent = 0);

signals:

public slots:
void doWork();

};

#endif // MYOBJECT_H
Предполагается, что он должен остановиться в myobject.cpp с qthread :: currentthread ()-> quit (); Но это не так.

Получение ошибки говорит, что этот вопрос слишком короткий. < /p>

Решение: добавить "return;" после вызова.

Подробнее здесь: https://stackoverflow.com/questions/160 ... es-to-quit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»