synchronize
Hedef yönteme erişimi eşitler.
Sözdizimi
[synchronize]
Açıklamalar
Sync C++ özniteliği, bir nesnenin hedef yöntemini eşitleme desteği uygular. Eşitleme, birden çok nesnenin hedef yöntemin erişimini denetleyerek ortak bir kaynak (sınıfın yöntemi gibi) kullanmasına olanak tanır.
Bu öznitelik tarafından eklenen kod, hedef yöntemin başında uygun Lock
yöntemi (iş parçacığı modeli tarafından belirlenir) çağırır. Yöntemden çıkıldığında Unlock
, otomatik olarak çağrılır. Bu işlevler hakkında daha fazla bilgi için bkz . CComAutoThreadModule::Lock
Bu öznitelik coclass, progid veya vi_progid özniteliğinin (veya bunlardan birini gösteren başka bir özniteliğin) aynı öğeye uygulanmasını gerektirir. Tek bir öznitelik kullanılırsa, diğer ikisi otomatik olarak uygulanır. Örneğin, uygulandıysa vi_progid
ve coclass
uygulanırsaprogid
.
Örnek
Aşağıdaki kod, nesnesinin UpdateBalance
yöntemi CMyClass
için eşitleme sağlar.
// 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;
}
};
Gereksinimler
Öznitelik bağlamı | Değer |
---|---|
Şunlar için geçerlidir: | Sınıf yöntemi, yöntemi |
Tekrarlanabilir | Hayır |
Gerekli öznitelikler | Aşağıdakilerden biri veya daha fazlası: coclass , progid , veya vi_progid . |
Geçersiz öznitelikler | Hiçbiri |
Öznitelik bağlamları hakkında daha fazla bilgi için bkz . Öznitelik Bağlamları.