synchronize
Synchronisiert den Zugriff auf die Zielmethode.
Syntax
[synchronize]
Hinweise
Das synchronize C++-Attribut implementiert Unterstützung für die Synchronisierung der Zielmethode eines Objekts. Die Synchronisierung ermöglicht es mehreren Objekten, eine gemeinsame Ressource (z. B. eine Methode einer Klasse) zu verwenden, indem der Zugriff auf die Zielmethode gesteuert wird.
Der von diesem Attribut eingefügte Code ruft die richtige Lock
Methode (bestimmt durch das Threadingmodell) am Anfang der Zielmethode auf. Wenn die Methode beendet wird, Unlock
wird sie automatisch aufgerufen. Weitere Informationen zu diesen Funktionen finden Sie unter CComAutoThreadModule::Lock
Dieses Attribut erfordert, dass die Attribute coclass, progid, oder vi_progid (oder ein anderes Attribut, das eines der genannten impliziert) auch auf demselben Element angewendet werden. Wenn ein einzelnes Attribut verwendet wird, werden die anderen beiden automatisch angewendet. Wenn sie beispielsweise progid
angewendet vi_progid
wird und coclass
auch angewendet werden.
Beispiel
Der folgende Code stellt die Synchronisierung für die UpdateBalance
Methode des CMyClass
Objekts bereit.
// 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;
}
};
Anforderungen
Attributkontext | Wert |
---|---|
Gilt für | Class-Methode, Methode |
Wiederholbar | Nein |
Erforderliche Attribute | Eine oder mehrere der folgenden: coclass , , progid oder vi_progid . |
Ungültige Attribute | None |
Weitere Informationen zu den Attributkontexten finden Sie unter Attributkontexte.
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für