私は4つのパネルを持つアプリケーションに取り組んでいます。最初のパネルには静止画像が表示されますが、2番目のパネルにはWebページが読み込まれます。順番にナビゲートするので、実際にアクセスする前に、2番目のパネルにWebページをロードしたいと思います。それを実装する方法は?新しいスレッドやバックグラウンドワーカーはスレッドセーフではないため、使用することはできません。それを行うためのより良い方法はありますか?UIをフリーズせずにWebページをロードする方法と、私が言ったように実際にアクセスする前にWebページをロードすることは可能ですか?
2 に答える
2
ここにはオプションはありません。WebBrowserクラスは基本的にスレッドセーフではなく、ハードスレッドアフィニティを備えています。別のスレッドで実行する方法はいくつかありますが、この回答はその方法を示しています。ただし、UIでページコンテンツをレンダリングするためにも必要である限り、非同期のコードを作成する必要があります。何をするにしても、DocumentCompletedイベントハンドラーに実装する必要があります。単純なステートマシンは驚異的なことをすることができます。
于 2012-08-18T12:29:02.380 に答える
-1
Dispatcher.BeginInvoke(the_method_loading_the_page)
修正する必要があります。
于 2012-08-18T12:02:05.480 に答える