3

Cool Iris Wall を埋め込んだ Web ページをロードする TWebBrowser コンポーネントを含む Delphi 6 Pro プログラムがあります。Cool Iris ウォールは SWF オブジェクトです。つまり、実行すると、Adobe Flash Player、ActiveX、または同様のオブジェクト内で実行が行われます。私が抱えている問題は、Wall が Web から画像/ビデオを読み込んでいるときに、メイン UI スレッドの CPU に大きな影響を与えることがあるということです。TWebBrowser がその操作のほとんどをバックグラウンド スレッドに移動して、メイン UI スレッドを満足させていることは知っていますが、Adobe Flash Player が実行している何かがメイン UI スレッドで発生しており、それが私のプログラムに大きな問題を引き起こしています。Adobe Flash Player をバックグラウンド スレッドに移動する方法はありますか?

[更新 - 2010 年 12 月 7 日] - 長時間の調査とデバッグ セッションの後、問題は Cool Iris Wall の Flickr プロキシに関係していたことが判明しました。主に 2 つの方法で Wall とやり取りできます。1) 特別な Flickr api プロトコル URL を渡して、Flickr と対話させます。子犬の Flickr キーワード検索の結果が表示された壁。このアプローチの利点は、Flickr へのクエリを作成し、Wall のコンテンツを構築するために必要なすべての作業を彼らが行うことです。2) フォト ストリーム アイテム データを含む RSS メディア フィードを自分で作成し、それを Wall にフィードします。

私はテクニック#1を使用していました。#1 の問題は、サーバーが Flickr フィードの作成に問題がある場合 (理由は不明)、ホスト SWF が CPU に大きな負荷をかけ、メインの UI スレッドの操作を妨害することです。Flickr API で直接動作するようにコード ベース全体を変換し、2 番目の手法を使用して自分でフィードを作成すると、問題はなくなりました。

-- ロシュラー

4

1 に答える 1

0

Webブラウザがスレッドを管理する方法を制御することはできません。Webブラウザーがメインスレッドに干渉しないようにする場合は、最初からメインスレッドでWebブラウザーを実行しないでください。

于 2010-12-06T21:14:52.500 に答える