Вызов методов в контексте QTHREAD

В первую очередь, если не использовал бы char*. Если Вы хотите строку ASCIIZ, определяете одного из них непосредственно:

const char Test::str[] = "mystr";

По большей части, это - то, что я использовал бы. Почему напрасно тратят время и память для издержек строкового класса.

Примечание, что "sizeof (Тест:: str)", точно даст Вам длину массива, который является длиной строки, включая завершение NUL (strlen (str) +1).

6
задан ymoreau 17 August 2017 в 18:45
поделиться

4 ответа

Существует проект под названием quaere .

Это среда Java, которая добавляет возможность запрашивать коллекции.

Примечание. По словам автора, проект больше не поддерживается.

Слот выполняется в потоке, в котором находится объект-получатель.

Итак, решение, которое я нашел до сих пор, заключалось в создании объекта внутри run () потока и использовании вместо этого его слотов. Таким образом, владельцем получателя является поток, а затем слот вызывается в контексте потоков.

3
ответ дан 16 December 2019 в 21:44
поделиться

Для простого примера производителя-потребителя посмотрите запись в блоге Брэдли Т. Хьюза Шагая без головной боли .

2
ответ дан 16 December 2019 в 21:44
поделиться

Похоже, ваш рабочий поток завершается еще до того, как вы сможете вызвать какую-либо функцию или отправить ему сигнал.

0
ответ дан 16 December 2019 в 21:44
поделиться

В этом примере показано, как можно разделить класс Worker, чтобы заставить его работать так, как вы хотите. Вам также необходимо предоставить ссылку или указатель на экземпляр Worker, чтобы иметь возможность подключиться к слоту.

class Worker : public QObject
{
    Q_OBJECT

public:
    Worker() { }

public slots:
    void doWork()
    {
        qDebug() << "executing thread id - " << QThread::currentThreadId();
    }
};

class WorkerThread : public QThread
{
    Q_OBJECT

public:
    void run()
    {
        qDebug() << "new thread id " << QThread::currentThreadId(); 
        Worker worker;
        exec();
    }
};
2
ответ дан 16 December 2019 в 21:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: