如何在TIdTCPServer :: Execute中同步代码

时间:2018-05-04 14:48:06

标签: c++builder indy

我在TIdTCPServer :: Execute方法中有VCL代码需要同步,我该怎么做?

ec2:DescribeImages

代码不会出乎意料地定期死锁。

1 个答案:

答案 0 :(得分:0)

此代码中的任何内容都不需要通过Synchronize委派给主UI线程。

但是,在工作线程中使用HDC时,在使用它时需要Lock(),否则主UI线程会在后台干扰它(更新:具体来说,主UI线程经常释放属于未锁定 TBitmap.CanvasTControlCanvas对象的TCanvas,甚至是工作线程使用的对象如果你自己使用TCanvas,你就可以了。

或者,只需将document.onclick = myFunction; function myFunction() { window.location.assign("google.com") } 替换为相应的Win32 API函数调用(CreateFontIndirect()GetTextExtentPoint32()),然后您就不必担心锁定任何内容。