Я использую QtConcurrence для запуска функции в отдельном потоке, но я хочу остановить, приостановить или убить этот поток, но я не могу. Я прочитал это:Qt Programming - QtConcurrence kill thread
Обратите внимание, что QFuture возвращаемый QtConcurrent :: Run() не поддерживает отмену, приостановку или отчетности прогресса. Возвращенный QFuture может использоваться только для запроса состояния работы/завершения и возврата значения функции .
Могу ли я сделать это любым другим способом?
Моя функция:
void MainWindow::on_imprimirButton_clicked()
{
if(filename.length() == 0){
ui->consolaBrowser->append("Error. Debe seleccionar un fichero.");
}else if(!filename.contains(".txt")){
ui->consolaBrowser->append("Fichero erroneo. Debe seleccionar un archivo de tipo G-CODE.");
}else{
imprimiendo=1;
*future= QtConcurrent::run(Imprimir,filename.toUtf8().data());
imprimiendo=0;
}
}
Вам не нужно «убивать» нить. Вам просто нужно установить флаг где-нибудь, из-за чего останавливается длительный процесс. – paulm