Einzelnen Beitrag anzeigen

d7user1
(Gast)

n/a Beiträge
 
#10

AW: 100 % CPU Last durch Thread

  Alt 16. Mär 2014, 16:36
ich habe genau dasselbe problem. mein TThread ruft intern eine Function auf welche ein paar dinge erledigt die auch mal länger dauern können.
innerhalb dieser Function ist eine Repeat-until-Schleife.

ich pausiere das mit einem while pausiert do LongDelay(25); .
die prozessorauslastung bleibt aber konstant auf dem vorherigen wert und sinkt nicht auf 0.

ich meine mich zu erinnern dass der wert zuvor immer auf 0 gesunken ist. warum tut er das nicht?

Delphi-Quellcode:
procedure TGenFunctions.LongDelay(Milliseconds: Integer);
var
 Tick: DWord;
 Event: THandle;
begin
 Event := CreateEvent(nil, False, False, nil);
 try
  Tick := GetTickCount + DWord(Milliseconds);
  while (Milliseconds > 0) and (MsgWaitForMultipleObjects(1, Event, False, Milliseconds, QS_ALLINPUT) <>
    WAIT_TIMEOUT) do
   begin
    Application.ProcessMessages;
    if Application.Terminated then
     Exit;
    Milliseconds := Tick - GetTickCount;
   end;
 finally
  CloseHandle(Event);
 end;
end;
  Mit Zitat antworten Zitat