同步

同步到目标方法。

[synchronize]

备注

同步 C++ 属性实现为同步对象的目标方法支持。 同步允许多个对象通过控制目标方法的访问使用公共资源 (例如类的方法)。

此特性插入的代码在目标方法开始时调用适当的 Lock 方法 (取决于线程模型)。 当方法退出时, Unlock 自动调用。 有关这些功能的更多信息,请参见 CComAutoThreadModule:: 锁定

此特性要求 coclassprogidvi_progid 属性 (或表示这些中为) 的其他特性也适用于同一元素。 如果使用任何单一属性,自动应用其他两个。 例如,因此,如果 progid 是应用的,也适用 vi_progidcoclass

示例

下面的代码为 CMyClass 对象的 UpdateBalance 方法提供同步。

// cpp_attr_ref_synchronize.cpp
// compile with: /LD
#define _ATL_ATTRIBUTES
#include "atlbase.h"
#include "atlcom.h"

[module(name="SYNC")];

[coclass,
 threading(both),
 vi_progid("MyProject.MyClass"),
 progid("MyProject.MyClass.1"),
 uuid("7a7baa0d-59b8-4576-b754-79d07e1d1cc3")
]
class CMyClass {
   float m_nBalance;

   [synchronize]
   void UpdateBalance(float nAdjust) {
      m_nBalance += nAdjust;
   }
};

要求

属性上下文

适用对象

类方法,方法

可重复

必需的特性

一个或多个以下各项: coclassprogidvi_progid

无效的特性

有关属性上下文的更多信息,请参见 属性上下文

请参见

其他资源

COM属性

Attributes Samples