Und war interessiert mich, ob es möglich ist, mit dem MainThread zu synchronisieren, obwohl man sich nicht in einem TThread-Objekt befindet. TThread stellt ja automatisch die
Synchronize()
-Methode zur Verfügung. Aber selbst die statischen Klassenmethoden davon helfen mir nicht wirklich, da ich ja keine TThread-Instanz zur Verfügung habe.
Hintergrund des Ganzen ist, dass ich ein
Handle im Kontext des MainThread erzeugen muss, um, darüber Nachrichten austauschen zu könnten. Mein Objekt will ich nicht von TThread ableiten, da es einfach unpassend ist. Zudem arbeitet diese Klasse als Singleton-Pattern mit Lazy Load, d.h. die einzige Instanz wird erst erzeugt, wenn diese auch zum ersten mal zum Einsatz kommt, d.h. im Klartext, dass auch ein Thread ungleich dem MainThread den Constructor aufrufen kann. Und genau hier liegt die Krux mit der Geschichte: im Constructor wird das
Handle für die Klasse erzeugt.
Ich hoffe, dass die wichtigen Punkte klar rüber gekommen sind
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)