![]() |
Threads zur Anzeige, dass WebSite noch geladen wird
Hallo,
über ein JvThread zeige ich an, dass eine Seite im TWEbBrowser noch nicht fertig geladen ist. Im Ersten Aufruf funktioniert dies auch wunderbar. Sobald ich aber dieses Thread bei einem erneuten Navigate aufrufe friert mein Programm ein. (Ein Terminate im Was mach ich falsch ??
Delphi-Quellcode:
WebBrowser1.Navigate('http://www.mywebsitelogin.com');
JvThreadLogin.Execute(Self); WebBrowser1.Navigate('http://www.mywebsitelogin.com/test/test.php'); JvThreadLogin.Execute(Self);
Delphi-Quellcode:
procedure TForm.JvThreadLoginExecute(Sender: TObject; Params: Pointer);
begin repeat Application.ProcessMessages; until (WebBrowser1.ReadyState = READYSTATE_COMPLETE) or (Application.Terminated);; JvThreadLogin.Terminate; If JvThreadLogin.Terminated then exit; end; |
AW: Threads zur Anzeige, dass WebSite noch geladen wird
Application.ProcessMessages in einem Anderen als den Main-Thread zu verwenden ist eine Todsünde.
Damit wird zumeist nicht Thread-sicherer Code des Main-Threads ausgeführt, der in einem anderen Thread nichts zu suchen hat. Ein Sleep wäre passender. Es stellt sich aber auch noch die wichtige Frage, ob ReadyState vom IE überhapt Thread-sicher ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz