1

件名は相互に排他的に聞こえますが、これはおそらくひどいハックですが、とにかく質問します.

ステータスバーのラベルを「読み込み中...」に設定し、場合によっては1〜2分かかる場合があるデータベースからデータを同期的に読み込むシングルスレッドのVB.NETアプリケーションがあります。データのロード中に AJAX タイプのアニメーションをユーザーに表示する方法はありますか? もちろん、データ アクセスに別のスレッド/BackgroundWorker を使用し、UI を個別に管理するのが正しい方法ですが、現在データ アクセス モデルを変更できず、「一時的な修正」を求められています。

現時点での私のアイデアのいくつかを次に示します。

  1. 別のスレッドからラベル (およびその単一のラベルのみ) を更新し、強制的に再描画し、Windows フォーム メッセージ ポンプを回避します (おそらく不可能です)。

  2. バックグラウンドで別のプロセスを保持し、メイン アプリケーションから「show」メッセージを送信します。アプリケーションの前に表示され、メイン アプリケーションからの「非表示」メッセージが受信されるまでアニメーションが表示されます。(ユーザーがメイン アプリケーションから切り替えても、「アニメーション」フォームがまだ表示されているという問題)

4

1 に答える 1

1

私はおそらくそれを提案するために反対票を投じられるでしょう(そして率直に言って私は人々を責めません)が、これはDoEventsの仕事のように聞こえます。

通常はお勧めしませんが、ハックを探しています。

于 2013-02-26T00:44:37.203 に答える