1

メイン フォームで複数TCppWebBrowserの を使用しています。アプリケーションを起動すると、最後のインターネット セッションのすべてのタブが復元されます。しかし、これにより、アプリケーションの主な形式が過負荷になります。私の質問は、メインフォームのオーバーロードをどのように回避できますか?

私はそれを達成しようとしましたが、成功しませんでした。C++ Builder のクラスを使用TThreadして、そこからナビゲーションを開始しようとしましたが、失敗し、メイン フォームがまだオーバーロードされています。私も試しましたCreateThread()-同じこと。

見つけた:

別のスレッドで作成された WebBrowser Control (MFC) は、Windows 7 および Vista で動作しますが、Windows XP では動作します

しかし、これはよくわかりません。

C++ Builder で私の質問を解決する方法を誰か教えてください!

4

1 に答える 1

0

可能であれば、スレッドを脇に置いて、1 ページずつロードしてみます。それは簡単です。必要なのは、すべてのコンテンツをTCppWebBrowsers一度にロードするのではなく、最初の (ユーザーに表示される) コンテンツのみをロードしてから、残りを 1 つずつロードすることです。

次のいずれかが発生したときにタブを読み込みます。

  • ユーザーがタブをアクティブにした場合 - このページをすぐにロードする必要があります
  • アプリケーションがアイドル状態で、他のタブが読み込まれていない - 次のタブを読み込む

すべてのタブが読み込まれるまでこれを行います。

もちろん、この遅延読み込みを実装するには、「セッション回復メカニズム」に何らかの影響を与えることができる必要があります。ただし、スレッドを追加できる場合は、タブを 1 つずつロードすることもできるはずです。これにより、負荷が長時間にわたって分散され、起動時にアプリが過負荷になるのを防ぐことができます。

于 2011-10-18T16:25:49.437 に答える