Излучайте сигналы или публикуйте события из QRunnable - PullRequest
1 голос
/ 18 февраля 2011

Правильно ли делать излучение внутри QRunnable::run()? Я должен сообщить своей ветке GUI, что изображение, обработанное QRunnable, сделано. Я использую QThreadPool / QRunnable, потому что мне нужно иметь возможность добавлять новые задачи в пул, когда в нем уже есть задачи. Мне трудно это сделать с QtConcurrent и QFutureWatcher.

QRunnable использует QObject, созданный в run(), для подключения к цели QObject и передачи сигналов.

Если излучение из QRunnable не очень хорошая вещь, возможно ли публиковать события оттуда?

1 Ответ

4 голосов
/ 18 февраля 2011

Да, отправка сигналов и публикация событий - это хорошая вещь в QRunnable::run(), потому что они оба поточно-ориентированы.Для правильной обработки сигналов и событий объекты QObject должны иметь правильную привязку потока.См. Threads и QObjects для получения более подробной информации.

...