QFuture, который можно отменить и сообщить о прогрессе

Класс QFuture имеет такие методы, как cancel(), progressValue() и т. д. По-видимому, их можно отслеживать через QFutureWatcher. Однако в документации к QtConcurrent::run() говорится:

Обратите внимание, что QFuture, возвращаемый функцией QtConcurrent::run() не поддерживает отмену, приостановку или отчет. Возвращаемое QFuture может может использоваться только для запроса состояние выполнения/завершения и возвращаемое значение функции.

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

(Для тех, кто знаком с .Net, что-то вроде класса BackgroundWorker. )

Какие есть варианты?

13
задан Gaurav Dave 8 May 2015 в 08:59
поделиться