Практическое руководство. Применение ключевого слова C# "lock" (C++/CLI)
В данном разделе рассматриваются способы использования ключевого слова C# lock в Visual C++. Для получения дополнительной информации см. Оператор lock (Справочник по C#).
Также можно использовать класс lock в библиотеке поддержки C++. Дополнительные сведения см. в разделе Синхронизация (класс lock).
Пример
// CS_lock_in_CPP.cpp
// compile with: /clr
using namespace System::Threading;
ref class Lock {
Object^ m_pObject;
public:
Lock( Object ^ pObject ) : m_pObject( pObject ) {
Monitor::Enter( m_pObject );
}
~Lock() {
Monitor::Exit( m_pObject );
}
};
ref struct LockHelper {
void DoSomething();
};
void LockHelper::DoSomething() {
// Note: Reference type with stack allocation semantics to provide
// deterministic finalization
Lock lock( this );
// LockHelper instance is locked
}
int main()
{
LockHelper lockHelper;
lockHelper.DoSomething();
return 0;
}