Einzelnen Beitrag anzeigen

Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#6

Re: Rückgabewerte von TCriticalSection?

  Alt 10. Nov 2004, 06:16
Was verwendest du denn für einen Timer? Den normalen TTimer? Dann sollte dir bewusst sein, dass dieser nicht mit Threads arbeitet, sondern nur über Windows-Messages. Windows-Messages werden hintereinander verarbeitet. Du wirst also nie in die Situation kommen, das der Event zwei mal gleichzeitig aufgerufen wird. Problematisch ist nur, wenn deine Event länger als 50ms dauert. Das würde dann bedeuten, das dein Programm nur noch mit dem Timer beschäftigt ist. Allerdings wird es nie passieren, dass das Event zwei mal gleichzeitig läuft.

Hier würde ich dir empfehlen mit Threads zu arbeiten. In dem Execute des Threads kannst du sowas dann machen.

Delphi-Quellcode:
// Abbruch des Threads, wenn die Anwendung geschlossen wurde
while not Application.Terminated do
begin
  TuWas;
  Sleep(50);
end;
Auch hier würde es nie dazu kommen, dass mehrmals gleichzeitig das TuWas aufgerufen wird. Für das Sleep kannst du natürlich auch andere Sachen nutzen um eine Verzögerung hinzubekommen. Ich denke, mit dieser Variante ersparst du dir eine Menge Ärger, ohne zu wissen von was ich da eigentlich Rede

P.S: Ich sehe gerade, dass du ja bereits einen Thread hast. Leider weiss ich garnicht wie ein TTimer im Thread reagiert. Aber auf jeden Fall sollte dann meine Variante die bessere sein
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat