![]() |
AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
Perfekt wäre natürlich eine Lösung wie die deine. Aber da muss ich erstmal gesund (aktuell krank) und ausgeschlafen durchblicken.
Bis später und danke für die Hilfe soweit :thumb: So. Edit. Was ich mit meiner Idee gestern vermeiden wollte, war etwas sowas hier
Delphi-Quellcode:
Wenn bThreadSleeping nun in itemX (ein Thread) und itemY (ein anderer Thread) verfügbar wäre, könne ich an vielen Stellen Code sparen.
if aThreadInfo.ThreadList.Items[iThreadID].iMode < 5 then
bPaused := aThreadInfo.ThreadList.Items[iThreadID].itemX.bThreadSleeping else bPaused := aThreadInfo.ThreadList.Items[iThreadID].itemY.bThreadSleeping; |
AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
emm ich versuche mich mal an einer Antwort...
Zitat:
Delphi-Quellcode:
geschrieben hast...
While Pause do;
So etwas macht man ![]() Du solltest Dir mal ![]() Zitat:
Zitat:
Zitat:
Zitat:
|
AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
Zitat:
Ohne das while im Thread kann der Thread doch gar nicht wissen, wie lange er schlafen soll. Denn ich habe auch Threads wo im Thread selber schnell ausgerechnet wird, wie lange er schlafen soll. Wie soll das denn sonst gehen? Zitat:
|
AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
Zitat:
![]() Zitat:
|
AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
Das mit dem Event ist ja schön und funktioniert super (auch weniger Code).
Aber ich kann da ja nicht sowas machen...
Delphi-Quellcode:
Aber grundsätzlich:
for i := 0 to iTimeOut do
begin MacheWasMitI; PruefeIrgendwasAnderes; PruefeNochWas; if IrgendwasErfuellt then Break; end; warum kein Sleep oder While im Thread? |
AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
Zitat:
Schau dir mal die CPU load an. |
AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
Zitat:
CPU-Auslastung: 0%. Zitat:
|
AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
Wenn Du mal den richtigen Code zeigst - schau ich mal drüber!
|
AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
Es läuft so ab:
- 1) Thread wird gestartet - 2) Execute-Methode wird ausgeführt - 3) es wird ausgerechnet, wie lange geschlafen werden soll. Das Ergebnis steht in iSleep. - 4) es folgt eine for-Schleife mit immer einem Sleep(1000); drin. Selbstverständlich auch Abbruchbedingungen usw., damit das Programm nicht hängt - 5) Ist die Schleife vorbei, wird der eigentliche Code ausgeführt Es geht also nur um Punkt 4. Eine ganz normale For-Schleife. Klar, ich habe auch andere Threads mit einer While-Schleife, aber denselben Abbruchbedingungen. |
AW: Frage zu Threads (ObjectList mit Klassen, jede Klasse hat Variablen + ggf. 1 Thre
Und warum eine For-Schleife mit N Sleeps?
Anstatt :
Delphi-Quellcode:
Kostet ~ 0 CPU Zeit... Und der Thread arbeitet wieder in wenigen Pico-Sekunden bei einem E_Event.SetEvent;
E_Event.WaitFor(FSleepTime);
Mavarik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz