(verwendung von vcl in) Callbackfunktion in Thread
-
Hallo.
Ich verwende in meinem Programm eine DLL, in der ein neuer Thread ertstellt wird. Bevor der Thread gestartet wird, wird ihm eine CALLBACK funktion auf dem Programm dass die DLL verwendet Übergeben. Wenn nun der Thread gestartet wird, beginnt der thread aktuelle Statusinformationen über die bearbeitung an die CALLBACK funktion zu senden.
In der Callback funktion werden die neuen Daten nun VCL komponenten (Label,Prograssbar) zugewiesen.Nun frag ich mich ob am das so überhaupt machen sollte, weil wenn ich die CALLBACK funktion aus dem Thread aufrufe läuft diese ja ja nicht in dem Thread von der Hostanwendung !? Und man soll ja nicht einfach auf VCL komponenten aus separaten Threads zugreifen. Wie löst man solch ein Problem richtig ?
Gruß Jens
-
Hallo
Das sollte mit einer TCriticalSection synchronisiert werden. Die brauchst du den Statuswerte aus der Callback-Funktion in Member-Variablen der Form schreiben. Dann kannst du zum Beispiel mit einem TTimer der Form über die Critical Section auf diese Member-Variablen zugreifen und in die entsprechenden Controls kopieren.
bis bald
akari