synchronize
同步處理目標方法的存取。
語法
[synchronize]
備註
同步處理C++屬性會實作同步處理物件目標方法的支援。 同步處理可讓多個物件藉由控制目標方法的存取,使用通用資源(例如類別的方法)。
這個屬性所插入的程式代碼會在目標方法的開頭呼叫適當的 Lock
方法(由線程模型決定)。 當 方法結束時, Unlock
會自動呼叫 。 如需這些函式的詳細資訊,請參閱 CComAutoThreadModule::Lock
此屬性需要 coclass、 progid或 vi_progid 屬性 (或表示上述其中一項的另一個屬性) 也套用至相同的項目。 如果使用任何單一屬性,則會自動套用其他兩項。 例如,如果 progid
已套用 , vi_progid
也會 coclass
套用 。
範例
下列程式代碼會為 UpdateBalance
物件的方法 CMyClass
提供同步處理。
// 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;
}
};
需求
屬性內容 | 值 |
---|---|
適用於 | 類別方法、 方法 |
可重複 | No |
必要屬性 | 下列一或多個專案: coclass 、 progid 或 vi_progid 。 |
無效屬性 | 無 |
如需有關屬性內容的詳細資訊,請參閱 屬性內容。