Forum: Object-Pascal / Delphi-Language
by Mavarik,
3. Jan 2018
Nö, wenn ich Lehrer wäre hätte ich es Dir direkt richtig und so beigebracht, dass Du es verstehst...
Forum: Object-Pascal / Delphi-Language
by Mavarik,
3. Jan 2018
Sorry, aber langsam wird es anstrengend... Versuch doch einfach aufgrund meines alten postings zu verstehen, wie es funktioniert und setzt dann einfach das Timeout nicht auf Infinite sondern auf den Wert den Du brauchst... Fertig.
Forum: Object-Pascal / Delphi-Language
by Mavarik,
3. Jan 2018
Naja den Thread wird man ja nicht beenden, hat ja sicherlich einen Sinn, sondern eher das Programm!
Forum: Object-Pascal / Delphi-Language
by Mavarik,
3. Jan 2018
Also:
Der Thread "schläft" im WaitFor(TimeOut) für TimeOut ms. Ich sage mal in dieser Zeit wird "NULL" CPU-Zeit verbraucht.
Aufgeweckt wird der Thread entweder wenn TimeOut aufgetreten ist oder wenn mit SetEvent der Event gesetzt wird (extern oder ggf. im Destructor)
Also bei einem FThreadTimer.Free rufst Du im destructor Setevent auf, damit die Execute procedure aus dem Waitfor raus...
Forum: Object-Pascal / Delphi-Language
by Mavarik,
2. Jan 2018
Ganz einfach. Es geht nur darum möglichst wenig CPU Zeit zu verbrennen.
Forum: Object-Pascal / Delphi-Language
by Mavarik,
2. Jan 2018
5h ist natürlich schon eine Spanne.
Ich würde mir in so einen Fall einen Timeout von X Minuten setzen und dann immer in einer Liste nachschauen ob ein Event ansteht.
Beispiel: ThreadTimeout auf 1h...
Wenn der nächste Termin < 1h ist setze ich den Timeout auf "Restzeit" dann habe ich einen Event der genau feuert.
Das gleiche, wenn ein neuer Event in die Liste kommt.
Forum: Object-Pascal / Delphi-Language
by Mavarik,
2. Jan 2018
emm... Ja genau das macht ja den Unterschied...