多线程 – 可以取消QFuture并报告进度
解决方法对于长时间运行的单个任务,QThread可能是您最好的选择.它没有内置的进度报告或取消功能,所以你必须自己滚动.但是为了简单的进度更新,这不是很难.要取消任务,请检查可以从任务循环中调用线程设置的标志.有一点需要注意的是,如果你重写QThread::run(),并把你的任务放在那里,那么就不能发出信号,因为QThread对象没有在它所运行的线程内创建,并且你不能将QObject从正在运行的线程.这个issue有一个很好的写作.