Morgen.
Ich hab folgenden Code in der Execute-Methode meines Threads:
Delphi-Quellcode:
procedure TBSBoardRefreshThread.Execute;
var LastMs, Ms: Integer;
begin
LastMs:=trunc(GetTime*24*60*60*1000);
while not Terminated do
begin
Ms:=trunc(GetTime*24*60*60*1000);
if assigned(FBoard) and (Ms>LastMs) then FBoard.Refresh(Ms-LastMs);
LastMs:=Ms;
end;
end;
Das Problem: Erstens läuft der Thread so schnell er nur kann und blockiert damit meinen Hauptthread. Der Hauptthread findet das gar nicht witzig und lässt meine
GUI freezen.
Eigentlich logisch. Aber wie verhindern? Wenn ich hintendran ein Sleep(0) dranhänge, gehts nicht und bei Sleep(10) auch nicht. Die
GUI reagiert immer noch nicht.