Опции потока QT - PullRequest
       5

Опции потока QT

1 голос
/ 01 февраля 2012

В настоящее время я пишу программу, которая имеет функцию для хэширования ряда файлов в фоновом режиме.Я несколько раз читал документацию по Qt4 и до сих пор не могу понять, какой из потоков лучше для этого подходит.

http://doc.qt.io/qt-5/thread-basics.html

Нет необходимости обновлятьGUI, когда это делается с каждым файлом, я просто не хочу блокировать GUI, и мне действительно нужно только одно соединение сигнал / слот после завершения.Я думаю о расширении QThread для потока хеширования.Это звучит разумно / правильно?

Ответы [ 2 ]

3 голосов
/ 01 февраля 2012

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

3 голосов
/ 01 февраля 2012

Звучит как хорошее место для использования функции QtConcurrent :: map ().Функция map может применить ту же операцию к контейнеру объектов, в вашем случае, к файлам.После того, как вы запустите функцию карты, вы можете создать QFutureWatcher и подключиться к его завершенному сигналу, чтобы получать уведомления о завершении всей работы.

...