Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Threads zur Anzeige, dass WebSite noch geladen wird (https://www.delphipraxis.net/152736-threads-zur-anzeige-dass-website-noch-geladen-wird.html)

waldforest 4. Jul 2010 12:33

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;

quantum 4. Jul 2010 12:55

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 01:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz