It seems which Synchronize cannot be used from a Thread created using CreateAnonymousThread, so the question is : How i can update a VCL component from inside of a Thread created using CreateAnonymousThread?
TThread.CreateAnonymousThread(procedure
begin
//do something
UpdateCompnent();//how I can update a VCL component from here?
end
).Start;
You can use synchronize in this case, e.g.:
TThread.Synchronize(nil, procedure begin UpdateComponent(); end);
And if you want asynchronous method call execution within the main thread, you can use TThread.Queue
, e.g.:
TThread.Queue(nil, procedure begin UpdateComponent(); end);
You could also use PostMessage to safely queue, or SendMessage to safely synchronize from an anonymous thread.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With