Hi,
ich habe eine Klasse geschrieben die eine übergebene URL einem WebBrowser läd. Wenn dieser das DocumentCompleted Event auslöst wird ein Image vom Inhalt gemacht und dieses über eine Get Methode wieder zurück gibt.
Nun habe ich das Problem, dass es eine gewisse Zeit zwischen übergeben der URL und bis das Bild durch die Get Methode bereitgestellt wird vergeht.
Das heißt bei
Klasse.GetImageFromURL(url);
Image img = Klasse.GetImage();
bekomme ich immer img = null weil der Browser die Seite noch nicht geladen hat.
Wie könnte man das hinbekommen?
Gruß SkySurfer
Es gibt 11 Arten von Menschen:
Du könntest einen Timer benutzen 🙂 1sec später bild machen oder so
Naja wär halt quick n dirty,
aber es müsste doch noch andere Möglichkeiten geben.
Hatte schon an threads oder so gedacht ?
Es gibt 11 Arten von Menschen:
Hallo SkySurfer,
implementiere doch einen Event in Deiner "Klasse". Dann kannst Du Dich benachrichtigen lassen wenn die Bilderzeugung durch ist.
Also ein Äquivalent zum DocumentRendered-Event, nur eben eine Ebene höher. Browser informiert "Klasse", Klasse rendert Bild, informiert dann aufrufende Instanz.
🙂 Torsten
Hallo SkySurfer,
warten ist bei Windows-Forms ohnehin ungünstig. Die Frage sollte also sein, welches ist das richtige Event. Und auch hier müsste DocumentCompleted dein Freund sein.
herbivore
Events kann ich aber nur mit einer weiteren Funktion verknüpfen seh ich das richtig?
Dann hab ich das Problem, dass Daten die mit dem erzeugten Bild weiterverwendet werden sollen global sein müssten, was wohl auch nicht so toll ist, oder sie in der neuen Funktion wieder neu geladen werden müssten, was bei XML doch auch etwas aufwendiger ist.
Es gibt 11 Arten von Menschen:
Hallo SkySurfer,
dass Daten die mit dem erzeugten Bild weiterverwendet werden sollen global sein müssten
nein, sehe ich nicht so. Mal abgesehen davon, dass es globale Daten in OO nicht wirklich gibt, braucht man hier vermutlich nicht mal static Daten (die den globalen Daten nahe kommen).
herbivore
Ich hab es jetzt in eine eigene Klasse verpackt, die alle Daten übergeben bekommt, bzw dann erst von ihr ermittelt werden. Diese lass ich dann von einer foreach Schleife instanzieren.
Es gibt 11 Arten von Menschen: