![]() |
Re: Sleep in einem Thread. Application.processmessage
Zitat:
Delphi-Quellcode:
msg ist vom Typ Tmsg und das translatemessage brauchst du nicht, da du in deinem Thread ja keine Tastatureingaben erwartest/bekommst.
while getmessage(msg,0,0,0) do dispatchmessage(msg)
Worauf du jetzt noch achten musst ist, dass du den Thread auch abbrechen kannst. |
Re: Sleep in einem Thread. Application.processmessage
muss ich umbedingt eine while draus machen....
habe es jetzt so gemacht
Delphi-Quellcode:
procedure TThreadClient.Execute;
var i : integer; msg : TMsg; begin inherited; repeat begin if fClient.Active then begin //... sende daten end; //Noch Online? if not fClient.Active then begin //... baue verbindung auf end; //Warte kurz sleep(1); GetMessage(msg, 0, 0, 0); TranslateMessage(msg); DispatchMessage(msg); end until Terminated; end; |
Re: Sleep in einem Thread. Application.processmessage
Wenn du immer wiederkehrende Aufgaben hast, solltest du diese in einen Timer auslagern. Es ist nämlich überhaupt nicht gesichert, dass GetMessage in annehmbarer Zeit zurückkehrt. Der Code sähe dann in etwa so aus:
Delphi-Quellcode:
procedure TThreadClient.OnTimer;
begin if fClient.Active then begin //... sende daten end; //Noch Online? if not fClient.Active then begin //... baue verbindung auf end; end; procedure TThreadClient.Execute; var Msg: TMsg; begin fTimer := TTimer.Create(nil); try fTimer.Interval := Wuppdi; fTimer.OnTimer := Self.OnTimer; fTimer.Enabled := True; while GetMessage(Msg, 0, 0, 0) do DispatchMessage(Msg); finally fTimer.Free; end; end; procedure TThreadClient.DoTerminate; begin PostThreadMessage(ThreadId, WM_QUIT, 0, 0); end; |
Re: Sleep in einem Thread. Application.processmessage
dann werde ich es so machen...
thx |
Re: Sleep in einem Thread. Application.processmessage
muss ich dann dennoch mit Synchronize(GoOnline) die online methode aufrufen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 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