![]() |
Wie prüfen, ob ein Thread bereits in Verwendung ist?
Hallo,
ich habe einen Thread, den ich 10 Mal benötige, also in einem statischen Array von 1..10 deklariere. Soweit so gut. Nun gibt es Funktionen in meiner Applikation, die sich einen freien dieser 10 Threads rausgreifen sollen und ihn initialisieren und starten sollen. Die Frage ist allerdings, wie ich bei einem Thread überhaupt prüfen kann, ob er bereits initialisiert wurde (weil ich dann einen anderen verwenden müsste)? Meine Idee mit:
Delphi-Quellcode:
scheint aber zumindest bei mir nicht zu funktionieren. Habt ihr andere Ideen?
for i:=1 to 10 do
if ThreadName[i] <> nil then ... |
AW: Wie prüfen, ob ein Thread bereits in Verwendung ist?
Der Thread meldet sich selber ab. Das Ganze noch gelockt, d.h. mit einer critical section ummantelt und fertig.
Oder Du suchst mal nach ThreadPools. In den neueren Delphi-Versionen ist schon einer dabei. Oder Du verzichtest auf das statische Array (ist sowieso der falsche Ansatz) und erzeugst Threads frei nach Schnauze (nur nicht zu viele) |
AW: Wie prüfen, ob ein Thread bereits in Verwendung ist?
Man könnte es sich auch einfach merken in einem zweite Boolean Array oder in einem zweidimensionalen Array.
|
AW: Wie prüfen, ob ein Thread bereits in Verwendung ist?
Zitat:
|
AW: Wie prüfen, ob ein Thread bereits in Verwendung ist?
Der Thread kann eine Nachricht schicken oder ein Event auslösen, wenn es sich beendet.
|
AW: Wie prüfen, ob ein Thread bereits in Verwendung ist?
Oder Windows Threadpools. Siehe mein Threadtutorial dazu Kapitel 8:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 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