synchronize
同步对目标方法的访问。
语法
[synchronize]
备注
Synchronize C++ 特性可实现对同步对象目标方法的支持。 通过同步,可控制对目标方法的访问,从而让多个对象使用相同的资源(例如某个类的方法)。
此特性插入的代码调用目标方法开头的适当 Lock
方法(由线程模型确定)。 退出该方法时,会自动调用 Unlock
。 有关这些函数的详细信息,请参阅 CComAutoThreadModule::Lock
此属性要求 coclass、 progid或 vi_progid 属性(或隐含这些属性之一的其他属性)也应用于同一个元素。 如果使用任何单个属性,则会自动应用另外两个属性。 例如,如果应用 progid
,则也会应用 vi_progid
和 coclass
。
示例
以下代码为 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;
}
};
要求
特性上下文 | 值 |
---|---|
适用于 | 类方法、方法 |
可重复 | 否 |
必需的特性 | 下面的一项或多项:coclass 、progid 或 vi_progid 。 |
无效的特性 | 无 |
有关特性上下文的详细信息,请参见 特性上下文。