J'ai un programme Delphi 6 Pro avec un composant TWebBrowser qui charge une page Web qui intègre un mur Cool Iris. Le mur Cool Iris est un objet SWF qui signifie que lors de l'exécution, l'exécution se produit à l'intérieur du lecteur Adobe Flash, un ActiveX ou un objet similaire je crois. Le problème que je suis est que parfois, lorsque le mur charge des images/vidéos du web, il prend un gros coup sur le CPU sur le fil principal de l'interface utilisateur. Je sais que TWebBrowser déplace la plupart de ses opérations sur un thread d'arrière-plan pour garder le thread principal de l'interface utilisateur heureux, mais Adobe Flash Player est en train de faire quelque chose sur le thread principal de l'interface utilisateur. Existe-t-il un moyen de déplacer Adobe Flash Player dans un fil d'arrière-plan?Déplacer Flash Player dans un contrôle Delphi TWebBrowser vers un thread d'arrière-plan?
[MISE À JOUR - 12/7/2010] - Après une session de sondage et de débogage marathon, il s'est avéré que le problème avait à voir avec le proxy Flickr de Cool Iris Wall. Vous pouvez vous connecter au mur de deux façons: 1) Vous leur transmettez des URL de protocole Flickr api et laissez-les parler à Flickr, par exemple "api: //www.flickr.com/" search = puppy " Mur avec les résultats d'une recherche par mot-clé Flickr pour chiot. L'avantage de cette approche est qu'ils font tout le travail pour vous nécessaire pour faire la requête à Flickr et construire le contenu du Mur. 2) Vous créez vous-même un flux RSS contenant les données de l'élément de flux de photos et l'alimentez sur le mur.
J'utilisais la technique n ° 1. Le problème aveC# 1 est que quand leurs serveurs ont du mal à construire le flux Flickr pour vous (pour une raison inconnue), leur SWF hôte met une lourde charge sur le processeur interférant avec l'opération principale du thread UI. J'ai converti toute ma base de code pour travailler directement avec l'API Flickr et créer le flux moi-même en utilisant la seconde technique et le problème a disparu.
- roschler
Je n'aime vraiment pas quand les gens downvote, mais n'ajoutez pas de commentaire expliquant pourquoi. –
Bien dit Andreas +1! – Remko
Je suis également très intéressé par ce sujet. Avez-vous vérifié la documentation du développeur d'adobe? il doit y avoir un moyen de le faire ... Cependant, je vois que tous les principaux navigateurs se bloquent ou gèlent lorsque votre application Flash essaie de charger beaucoup d'objets - je suppose que cela aurait été corrigé maintenant s'il y avait une possibilité Bien que je puisse me tromper ... – ComputerSaysNo