2

上部パネルと下部パネルのあるフォームがあります。
ユーザーは上部パネルで選択を行い、1 つのキー フィールドの値を変更するたびに、下部パネルのコントロールを破棄し、時間のかかる別のアプリケーションへの呼び出しを (COM 経由で) 行い、次のリストを追加します。新しいコントロールが追加されています。この更新プロセスには数秒かかります。

更新中に下部パネルを無効にして、ユーザーが上部パネルで作業を続けられるようにしたいと考えています。もちろん、これはすべて 1 つのスレッドで実行される 1 つの GUI です。

イラスト:

ここに画像の説明を入力

BackgroundWorker で遊んでみましたが、もちろん、メイン スレッドの GUI に直接コントロールを作成することはできません。

つまり、ユーザーが別の部分で作業を続けている間に、GUI の一部を無効にしてバックグラウンドで再構築できるようにすることはできますか?

4

1 に答える 1

3

つまり、ユーザーが別の部分で作業を続けている間に、GUI の一部を無効にしてバックグラウンドで再構築できるようにすることはできますか?

一般的に、いいえ。GUI 要素/コントロールはすべて UI スレッドで作成および使用する必要があり、それ以外の場所では使用できません。

このタイプのシナリオを作成する最善の方法は、通常、BackgroundWorkerまたはその他の手法を使用して必要なデータをバックグラウンド スレッドで取得し、データが完全に読み込まれた後に UI を構築することです。

于 2013-10-03T16:09:47.807 に答える