В классе QFuture
есть методы, такие как cancel()
, progressValue()
и т.д. По-видимому, они могут контролироваться с помощью QFutureWatcher
. Однако документация для QtConcurrent::run()
гласит:
Обратите внимание, что QFuture, возвращаемый QtConcurrent:: run() не поддерживает отмена, приостановка или прогресс составление отчетов. Возвращенный QFuture может только для запроса запуск/завершение работы и возврат значение функции.
Я тщетно посмотрел, какой метод действительно может создать QFuture
, который можно отменить и сообщить о прогрессе за одну длительную операцию. (Похоже, может быть, QtConcurrent::map()
и подобные функции могут, но у меня только один, длительный метод.)
(Для тех, кто знаком с .Net, что-то вроде класса BackgroundWorker
.)
Какие опции доступны?