次の方法で共有


方法 : C++ で C# lock キーワードを実装する

更新 : 2007 年 11 月

このトピックでは、Visual C++ で C# lock キーワードを実装する方法について説明します。詳細については、「lock ステートメント (C# リファレンス)」を参照してください。

C++ サポート ライブラリ内の lock クラスも使用できます。詳細については、「同期 (lock クラス)」を参照してください。

使用例

// CS_lock_in_CPP.cpp
// compile with: /clr /c
using namespace System::Threading;
ref class Lock {
   Object^ m_pObject;
   Lock % operator=( Lock const % );
   Lock( Lock const % );
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
}

参照

その他の技術情報

C++ の他の .NET 言語との相互運用性