Forum: Object-Pascal / Delphi-Language
by stoxx,
27. Jun 2014
kann man zustimmen
besser Postmessage, oder SendMessageTimeOut verwenden, da bei SendMessage bis zur Bestätigung der Verarbeitung gewartet wird, da hätte man dann auch gleich synchronize verwenden können, wo der Thread ebenso bis zum Ende der Verarbeitung angehalten wird.
Forum: Object-Pascal / Delphi-Language
by stoxx,
26. Jun 2014
nein, läuft er nicht, genau deswegen nimmt er ja den Weg über Postmessage.
Muss nix synchronisiert werden. Postmessage geht übers Betriebssystem und kommt im Hauptthread der Anwendung wieder an und der Text kann dort in einem Label angezeigt werden.
Man spart sich den Aufruf von synchronize, der WorkerThread wird demnach auch nicht für einen kurzen Moment angehalten.
Bei hochperformanten...
Forum: Object-Pascal / Delphi-Language
by stoxx,
26. Jun 2014
jetzt übergibst Du einen Pointer von einem Pointer .. also doppelt gemoppelt.
So wie ich das geschrieben habe, geht es auf jeden Fall. Ich habe für sowas sogar extra eine Klasse gebaut, die (urpsrünglich) normale Events als asynchrone Events genau nach dieser Methode vom Thread an den Hauptthread schickt.
Umwandlung dann natürlich:
... nicht Pointer() sondern TLogMessage()
var
...
Forum: Object-Pascal / Delphi-Language
by stoxx,
26. Jun 2014
müsste eigenlich sein: (ohne @)
Integer(LogMsg)
Weil ein Object ist schon selbst ein Pointer.
Ein TObject auf Integer zu casten hat eigentlich immer funktioniert.