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?
Thema durchsuchen
Ansicht
Themen-Optionen

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

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

Registriert seit: 7. Sep 2006
Ort: Berlin
441 Beiträge
 
Delphi 12 Athens
 
#1

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

  Alt 5. Dez 2015, 20: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
Devid Espenschied
Pre-sales Consultant
Embarcadero Germany GmbH
germany.info@embarcadero.com

Kein Support per PN
  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, 21: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

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, 22: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, 22: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

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, 22: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

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, 23: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
Antwort Antwort


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 02:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz