20種類のクラスを利用したアプリケーションがあります。プログラムの実行はメインウィンドウで開始されます。進行状況ダイアログを開始します。さまざまな目的のためにさまざまなクラスを利用します。実行が特定のクラスに行き、必要なことを実行してメインウィンドウクラスに戻る各関数呼び出しの後、進行状況ダイアログを更新します。ここで問題となるのは、実行がメインウィンドウクラスから離れると、進行状況ダイアログがフリーズすることです。キャンセルボタンにアクセスできないため、必要な時間に実行を停止できませんでした。
mainclass :: mainclass(){
ProgressDialog-> exec();
x->add();
updateProgressDialog();
y->do();
updateProgressDialog();
zz->bring();
updateProgressDialog();
}
// x、y、zは3つの異なるクラスです。
これが実行の流れです。メインクラスに関数を入力するとすぐに、進行状況ダイアログが開始されます。異なるクラスから関数を呼び出します。機能にはかなりの時間がかかります。実行部分を実行するためにスレッドを呼び出しましたが、進行状況ダイアログをキャンセルできません。進行状況ダイアログでキャンセルボタンが押されたときに、プログラムの実行を停止したい。
この問題を解決する方法を教えてください。私がここではっきりしていることを願っています。