У меня есть приложение, которое использует 20 различных классов. Выполнение программы начинается в главном окне. Я начинаю диалог прогресса. Я буду использовать разные классы для разных целей. После каждого вызова функции, выполнение которого переходит к определенному классу и выполняет требуемый и возвращается к классу основного окна, я буду обновлять диалог прогресса. Теперь проблема в том, что диалог прогресса зависает, когда выполнение уходит из класса mainwindow. Кнопка отмены недоступна, поэтому выполнение не может быть остановлено в нужное время.
MainClass :: MainClass ()
{
ProgressDialog-> Exec ();
x->add();
updateProgressDialog();
y->do();
updateProgressDialog();
zz->bring();
updateProgressDialog();
}
// x, y, z - три разных класса.
Вот как идет исполнение. Как только я введу функцию в основной класс, я начну диалог прогресса. и вызывать функции из разных классов. Функции занимают значительное количество времени. Я вызвал поток, чтобы выполнить часть выполнения, но я не могу отменить ход выполнения diaolog. Я хочу, чтобы выполнение программы было остановлено, как и при нажатии кнопки отмены в диалоговом окне прогресса.
Пожалуйста, дайте мне знать, как избежать этой проблемы. Надеюсь, мне ясно.