(Moderator)
Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
Delphi 2007 Enterprise
|
Re: CPU Fresser beim Warten auf ein Flag - Lösung ?
22. Dez 2006, 08:03
Man darf sich nicht wundern, wenn die Anwendung im Taskmanager bei 100% steht, denn schließlich macht sie ja was: Sie wartet sich einen Wolf, bis dieses Flag endlich gesetzt ist.
Was soll denn passieren, wenn das Flag gesetzt wurde? 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).
In der Zwischenzeit steht die Anwendung zu 100% anderen Dingen zur Verfügung.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
|