Thema: Delphi Polling im TThread

Einzelnen Beitrag anzeigen

Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#4

AW: Polling im TThread

  Alt 27. Aug 2014, 21:59
Danke für deine Antwort. Event...wie meinst du das?

mein Vorschlag:
Delphi-Quellcode:
procedure TWorkerPolling.Execute;
var
  StartCount: Cardinal;
  CurrentCount: Cardinal;
begin
  inherited;
  StartCount:= 0;
  while not Terminated do
  begin
    CurrentCount:= GetTickCount;
    if (CurrentCount - StartCount) > conPollingInterval then // conPollingInterval = 10000
    begin
 
     // auszuführender Code

      StartCount:= CetTickCount;
    end;
    Sleep(100); // für Leerlauf
  end;
end;
...auf die 100 ms "Versatz" kann man verzichten.

Zitat:
wo man 10 Sekunden wartet ob er auslöst
...das Warten ist ja das Problem. Auf der einen Seite sollen die Anweisungen nur alle X Milisekunden ausgeführt werden, auf der anderen Seite soll der Thread von Außen sofort beendbar sein. Ist der Thread gerade in der "Verarbeitung" macht er diese natürlich erst fertig und beendet sich dann sofort weil Terminated von außen gesetzt wurde.

Geändert von haentschman (27. Aug 2014 um 22:03 Uhr)
  Mit Zitat antworten Zitat