Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#7

Re: CPU Fresser beim Warten auf ein Flag - Lösung ?

  Alt 22. Dez 2006, 08:17
Moin !

Zitat:
Was soll denn passieren, wenn das Flag gesetzt wurde?
Ok, zum besseren Verständnis (und in der Hoffnung das vielleicht noch eine andere Idee bei rum kommt) ...

Es geht um eine Software die ein Ladegerät nach Daten abfragt. Dabei muss immer eine Sequenz aus 3 Befehlen gesendet werden. Aber Befehl 2 darf erst wenn Befehl 1 fertig ist. Und somit warte ich über ein Flag, ob der vorherige Befehl schon erfolgreich ausgeführt wurde. Wenn das Flag gesetzt ist, rennt das Prog weiter und sendet den neuen Befehl zum Lader.

Zitat:
Ich würde nämlich eine Semaphore (oder ein Event) verwenden, und einen Thead warten lassen (CPU-Belastung: 0.0%). Sobald das Flag gesetzt (oder die maximale Zeit gewartet) wurde, terminiert der Thread. Im OnTerminate des Threads wird das Ereignis aufgerufen (Flag gesetzt) oder eben nicht (Timeout abgelaufen).
Tja, das mit den Threads ist so eine Sache. Ich habe mich daran schon mal versucht, aber so recht war ich nicht erfolgreich. Du hättest für sowas nicht einen Codeschnipsel für mich?

Und jetzt muss ich erstmal nachlesen was eine Semaphore ist
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat