Gegenseitiges Beeinflussen von Komponenten

14/09/2007 - 16:42 von Brian Schmalisch | Report spam
Hallo,

ich habe auf einem Formular zwei selbsterstellte Komponenten angeordnet.

Komponente 1 ist ein Ticker, welche einen Text von rechts nach links
durchlaufen làsst.

Komponente 2 ist ein Webbrowser, welcher alle 20 Sekunden eine neue Seite
làd. Ich habe jetzt festgestellt, dass jedesmal, wenn eine Webseite neu
geladen wird, der Ticker stehen bleibt bzw. sehr stark ruckelt.

So lade ich die Webseiten:
private void UpdateWebBrowser()
{
if (zaehler == urls.Length)
zaehler = 0;
webBrowser1.Navigate(urls[zaehler].Trim());
zaehler++;
}
private void backworkerWork(object sender, DoWorkEventArgs e)
{
while (true)
{
webBrowser1.Invoke(new MethodInvoker(UpdateWebBrowser));
Thread.Sleep(delay);
}
}

Wie kann ich die Webbrowserkomponente so beeinflussen, dass diese nicht die
ganze Performance beim Laden der Webseiten runterzieht? Kann mir hier jemand
weiterhelfen?

mfg

Brian
 

Lesen sie die antworten

#1 Thomas Scheidegger [MVP]
14/09/2007 - 18:53 | Warnen spam
Hallo Brian

private void UpdateWebBrowser() {
webBrowser1.Navigate(urls[zaehler].Trim());
private void backworkerWork(object sender, DoWorkEventArgs e) {
while (true){
webBrowser1.Invoke(new MethodInvoker(UpdateWebBrowser));




diese Kombination (BackgroundWorker ruft Navigate via Invoke)
macht (alleine) keinen Sinn (nur Umweg), wird da eh synchron vom GUI-Thread ausgeführt.
zB ein Forms-Timer wàre naheliegender.


Wie kann ich die Webbrowserkomponente so beeinflussen, dass diese nicht die
ganze Performance beim Laden der Webseiten runterzieht?



dies dürfte entweder am Browser-Control liegen (u.a. ob intern Multi-Threaded),
oder dein übriger (Ticker-) Code hat irgendwelche (blockierende) Abhàngigkeiten...

Ist dies auf einem Single-CPU/Core Rechner?
Wie überladen (Bilder ua Balast) ist die Webseite? (schlankere Text-Version?)




Thomas Scheidegger - MVP .NET - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/

Ähnliche fragen