Thema: Delphi Beenden von TThreads

Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.208 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Beenden von TThreads

  Alt 25. Jun 2025, 10:21
Ich bin noch nie gut mit diesem "Fire & Forget"-Ansatz (also FreeOnTerminate = True) gefahren, dass man einen Thread startet, quasi wie "Hier, mach was, vielleicht bist du später noch da, vielleicht nicht. Mir doch egal".

Ich würde entweder einen Thread pro Postfach/Mailbox machen, oder du hast eher etwas vor, was besser in die Philosophie von Tasks passt, das was in der Unit System.Threading liegt. Hast du dir das mal angeschaut?

Natürlich kannst du deinen Thread auch weiterhin auf FreeOnTerminate=True lassen und ihm gleichzeitig (z.B. im Konstruktor) etwas mitgeben, wo der Thread selbst nachschauen kann "Werde ich eigentlich noch gebraucht?". Delphi's Standardbibliothek hat da nichts wirklich fertig, was der Fachmann gerne ein "Cancellation Token" nennt, aber du könntest genauso gut ein normales Event (Unit System.SyncObjs) nehmen. Bei jedem Durchlauf kann der Thread ja schauen ob das "wirSindJetztFertig"-Event bereits ausgelöst wurde, und wenn ja, dann geht er zu Ende.
  Mit Zitat antworten Zitat