2009-12-07 19 views
0

您可以提出一种设计时组件可以从通用代码(VCL或其他)和我自己的线程中访问的方法吗? 问题是,当我完全控制自己的线程时,我确切知道什么时候应该访问互斥锁。对于设计时元素,我至少不能控制与VCL相关的代码。 其中一种变体是将HandleMessage包装在互斥体访问代码中。这背后的想法是几乎所有与VCL相关的东西都来自消息处理代码(直接的SendMessage处理除外)。但是看看这些消息来源,我没有看到任何“官方”的方式来包装任何代码片段中的消息处理。在Delphi中对组件进行多线程访问

回答

2

甚至不要去那里。谷歌的“全球解释器锁定”(Python专用),看看这个瓶颈是一个坏主意。

如果您需要对数据进行同步访问,请尝试尽可能缩短锁定的访问时间,并锁定呼叫链中的任何高于绝对必须的值。如果您有要从多个线程访问的对象,请在其方法内同步。