本文介绍了从CreateAnonymousThread更新VCL组件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

似乎哪些不能使用创建的线程使用,所以问题是:我如何可以使用CreateAnonymousThread创建的线程内部更新VCL组件?

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);

如果要在主线程中执行异步方法调用,可以使用 TThread.Queue ,例如:

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);

这篇关于从CreateAnonymousThread更新VCL组件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 17:20