私は次のクラス階層を持っています:
クラスBaseProcess {{ public virtual void Execute()= 0; }; クラスサブプロセス:BaseProcess {{ public virtual void Execute() {{ //何かをする //ここでGUIにコールバックする必要があります。おそらく、ファイルセレクタからファイルパスを取得するためです。 //他のことをする //操作の進行状況に応じてGUIを更新したい //より多くの処理 } };
SubProcessオブジェクトが作成され、GUIボタンのイベントハンドラーから呼び出されると仮定します。
私の質問は、Execute()関数内からGUIを操作するための最良の方法は何ですか?(また、Execute()が別のスレッドで実行されている可能性があると想定しています)
私が持っていたアイデアは、コールバックをSubProcessオブジェクトに渡すことでした。これにより、GUIに情報を送信できるようになりますが、ファイルセレクターの場合、データをSubProcessオブジェクトに戻すための最良の方法は何でしょうか。 ?リクエストに応じてさまざまなタイプのデータを返すことができるように、ソリューションをできるだけ一般的にしたいと思います。
注:コードの間違いは無視してください。問題を説明するために、サンプルをすばやくまとめました。
アップデート:
明確にするために申し訳ありませんが、これはWindows、MFCになります。全体的な設計はほとんどのGUIフレームワークに適用できるはずなので、これがどれほど重要かわかりません。