Delphi-Quellcode:
var DerString: String;
procedure DeineProzedur;
begin
Form1.Label4.Caption := DerString;
showmessage('Tadaaa');
end;
procedure callback(Value: PAnsiChar);
begin
DerString := Value;
TThread.Synchronize(nil, DeineProzedur);
end;
In neueren Delphis ist diese Sync-Procedur als Referenz ausgelegt, das heißt man kann hier z.B. eine einfache Prozedur + eine globale Variable
oder
OOP-mäßig eine Methode, mit der Variable als Feld in der zugehörigen Klasse verwenden.
Wo du aber aufpassen mußt, auf diesen String (bzw. alle Variablen, welche du für die Synchronisierung benötigst) darf
nur innerhalb dieses Callbacks (solange dieser Callback immer nur aus einem Thread gleichzeitig aufgerufen wird) und innerhalb der SyncProzedur zugegriffen werden.
Oder du mußt den Zugriff auf diese Variablen z.B. über eine CriticalSection absichern.