Share via


synchronize

同步对目标方法的访问。

语法

[synchronize]

备注

Synchronize C++ 特性可实现对同步对象目标方法的支持。 通过同步,可控制对目标方法的访问,从而让多个对象使用相同的资源(例如某个类的方法)。

此特性插入的代码调用目标方法开头的适当 Lock 方法(由线程模型确定)。 退出该方法时,会自动调用 Unlock。 有关这些函数的详细信息,请参阅 CComAutoThreadModule::Lock

此属性要求 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 特性