AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wie prüfen, ob ein Thread bereits in Verwendung ist?

Wie prüfen, ob ein Thread bereits in Verwendung ist?

Ein Thema von devidespe · begonnen am 5. Dez 2015 · letzter Beitrag vom 5. Dez 2015
Antwort Antwort
devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
433 Beiträge
 
Delphi 10.4 Sydney
 
#1

Wie prüfen, ob ein Thread bereits in Verwendung ist?

  Alt 5. Dez 2015, 19:26
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:
for i:=1 to 10 do
if ThreadName[i] <> nil then ...
scheint aber zumindest bei mir nicht zu funktionieren. Habt ihr andere Ideen?
Devid
57 65 72 20 6C 65 73 65 6E 20 6B 61 6E 6E 2C 20 69 73 74 20 6B 6C 61 72 20 69 6D 20 56 6F 72 74 65 69 6C 21
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Wie prüfen, ob ein Thread bereits in Verwendung ist?

  Alt 5. Dez 2015, 20:47
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)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Wie prüfen, ob ein Thread bereits in Verwendung ist?

  Alt 5. Dez 2015, 21:23
Man könnte es sich auch einfach merken in einem zweite Boolean Array oder in einem zweidimensionalen Array.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#4

AW: Wie prüfen, ob ein Thread bereits in Verwendung ist?

  Alt 5. Dez 2015, 21:48
Man könnte es sich auch einfach merken in einem zweite Boolean Array oder in einem zweidimensionalen Array.
Und wer markiert 'Thread X ist wieder zu haben?'?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Wie prüfen, ob ein Thread bereits in Verwendung ist?

  Alt 5. Dez 2015, 21:59
Der Thread kann eine Nachricht schicken oder ein Event auslösen, wenn es sich beendet.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Wie prüfen, ob ein Thread bereits in Verwendung ist?

  Alt 5. Dez 2015, 22:04
Oder Windows Threadpools. Siehe mein Threadtutorial dazu Kapitel 8:
http://michael-puff.de/Programmierung/Delphi/Tutorials/
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf