ActiveX控件是否需要线程同步?

时间:2011-01-19 08:36:29

标签: multithreading synchronization activex

我目前正在开发一个简单的ActiveX控件。此控件公开一小组属性和方法。现在还不知道是否会从不同的线程调用ActiveX方法。 为了准备好面对这种情况,我决定在控件公开的每个方法中实现一个线程同步。 我是否需要实现此同步,或者它已由Microsoft ActiveX框架实现? 我做了多余的事情吗?

1 个答案:

答案 0 :(得分:1)

这是如何工作取决于您的控件使用的线程模型,但假设您的ActiveX控件使用“APARTMENT”线程模型(它几乎总是应该),您可以假设ActiveX控件上的所有方法都将在同一个上调用线。如果其他线程访问它们,ActiveX将自动编组调用正确的线程,以便您在该线程上接收它。

出于同样的原因,您绝不能对从您获得的线程以外的线程使用的ActiveX对象或COM接口进行调用。如果你需要从多个线程进行调用,有办法做到这一点,但这超出了这个问题的范围。

总结:您不必担心从不同的线程调用您的方法,因此您不必担心同步。