Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#8

AW: Anfängerfragen zu Threads (TThread)

  Alt 4. Nov 2017, 14:31
Warum muß die eierlegende Wollmilchsauklasse dem Thread bekannt sein?
Diese Frage steht mit der bereits genannten Redundanz in Verbindung, und ist eine Sache, die mir auch nicht gefällt. Im Prinzip könnte der Thread alles mit der Instanz der Klasse machen. Genau das wollte ich verhindern und nur die Methode Ping in den Thread geben. Aber ich werd mir mal das Klassendesign anschauen, ob ich da etwas weiter unten ansetzen kann. TComplexClass beinhaltet ein paar weitere Klassen, hoffentlich ist eine davon für das Ping zuständig (nein, ich habe den Code von TComplexClass nicht geschrieben, nur etwas angepasst).

Zitat:
Und wenn er fertig ist, dies dem Mainthread mit einem Postmessage bekannt geben.
Macht es denn einen Unterschied, ob ich das Arbeitsende mittels PostMessage, eigenem TNotifyEvent oder OnTerminate bekanntgebe?

was heißt "vorzeitig terminieren"? Wenn du das Programm etwa mit dem Schließen X beendest?
Zum Beispiel.

Zitat:
Wenn dem so sein sollte, dann müsste deine Anwendung einen Shutdown Prozess initiieren und alle noch laufenden Threads "sauber" beenden.
Der Thread wird offenbar knallhart gekillt, ohne dass er davon etwas mitbekommt. Der Destruktur des Threads wird nicht durchlaufen (daher wohl auch die Lecks). Und nein, mein Code ruft an keiner Stelle FPingThread.Terminate oder ähnliches.

Zitat:
Einen Thread direkt wegschießen halte ich nicht für besonders gut und wüsste auch wenn ich ehrlich bin nicht wie ich das machen sollte.
Sehe ich auch so. Nur weiß ich nicht, wie ich das verhindern sollte, wenn der Delphi-Code das bereits tut.

Grüße
Dalai
  Mit Zitat antworten Zitat