![]() |
AW: Rückgabewert von Threads
WaitForMultipleObjects passt hier nicht so ganz, da der Aufruf den Hauptthread und damit das Forumlar blockiert. Wie Uwe in #2 schon erwähnt hat, würde ich das auch mit dem OnTerminate Ereignis umsetzen.
Delphi-Quellcode:
procedure ButtonStartClick;
begin StartThreads; end; procedure StartThreads; begin if ActiveThreads <> 0 then Exit; // falls noch Threads laufen, keine neuen starten ActiveThreads := 4; // Anzahl laufender Threads setzen for i := 1 to ActiveThreads do TMyThread.Create.OnTerminate := OnThreadTerminate; // Threads starten und Event setzen end; procedure OnThreadTerminate; begin Dec(ActiveThreads); // Anzahl laufender Threads anpassen if ActiveThreads = 0 then // falls das der letzte von den 4 Threads war... StartThreads; // ...nächsten 4 Threads starten end; Wenn du dann noch FreeOnTerminate aller Threads auf true setzt, brauchst du dich auch nicht um die Freigabe der Threads zu kümmern. |
AW: Rückgabewert von Threads
Zitat:
|
AW: Rückgabewert von Threads
@Björn:
Wirklich ausgezeichnete Idee, den Start neuer Threads so zu lösen. :thumb: Vielen Dank soweit!! @patti: Hast du einen Vorschlag, wie man das lösen könnte? Vielleicht ein Pendant zu Critical Sections? Hannes |
AW: Rückgabewert von Threads
Das OnTerminate Event der TThread Klasse wird im Kontext des Hauptthreads aufgerufen. Von daher stellt das kein Problem dar.
|
AW: Rückgabewert von Threads
Oh stimmt, hätte ich doch vorher mal in die Hilfe geschaut...
Zitat:
|
AW: Rückgabewert von Threads
[ot]Steht das wirklich so in der Hilfe? Ich hab nicht nachgeschaut, aber das ist ja eine 1zu1 Übersetzung. :shock:[/ot]
|
AW: Rückgabewert von Threads
Jupp, gerade mit Hilfe der Delphi-Referenz gefunden:
![]() |
AW: Rückgabewert von Threads
So, an dieser Stelle möchte ich mich ganz herzlich bei euch für eure Mühe und Geduld, v.a. aber für euren Einfallsreichtum bedanken; ihr habt mir ein ganzen Stück weitergeholfen, sodass nun die Fertigstellung des besagten Programmes in greifbare Nähe rückt. Ein riesiges Dankeschön euch allen! :thumb:
Liebe Grüße Hannes |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:53 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