2つのタブを持つフォームがあります。最初のタブは退屈で、2番目のタブ(デフォルトではユーザには見えない)には多くのコンボボックスが含まれています。バックグラウンドスレッドでコンボを入力している間に、フォームの応答が遅くなります
FormLoad()イベントの使用私はバックグラウンドスレッド上の2番目のタブ(約11,000個のアイテム/文字列)でコンボボックスを作成します。これを行うsqlコマンドも非同期です。
これは理論的には、ユーザーが最終的に2番目のタブをクリックすると(10秒か10時間かにかかわらず)、すぐにきれいに入力されたコントロールが表示されるはずですが、 4秒の遅延。私はそれを得ることはありません!すべての重い持ち上げがバックグラウンドスレッド(最初の場所でそれらを使用する全理由!)を介して行われている場合、ユーザーがそれをクリックしたときに遅く応答しないアプリケーションはなぜですか?
*最初にコンボを記入する機会を与えてくれるだけでなく、backgroundWorker1_RunWorkerComplete()メソッドが起動して、それが完了したら、すべての仕事が持っていることを知らせるデバッグメッセージを送信する*
何か助けていただければ幸いです。
質問:バックグラウンドスレッドをオンデマンドで起動すると(たとえば、最初のタブのボタンを使用して)、開始する前に同じ結果が得られたら、2番目のタブを表示しますか? –
コンボの11,000アイテムはこれまでにない素晴らしいアイテムです。より良い形容詞は使えないだろう。私はこの問題に関していくつかの好奇心を認めていますが、私があなただったら本当の問題に取り組んでいます。 –