C#'s lock() in Managed C++
Does managed C++ have an equivalent to C#'s lock() and VB's SyncLock? If so, how do I use it? The equivelent to a lock / SyncLock would be to use the Monitor class. In .NET 1-3.5sp, lock(obj) does: Monitor.Enter(obj); try { // Do work } finally { Monitor.Exit(obj); } As of .NET 4, it will be: bool taken = false; try { Monitor.Enter(obj, ref taken); // Do work } finally { if (taken) { Monitor.Exit(obj); } } You could translate this to C++ by doing: System::Object^ obj = gcnew System::Object(); Monitor::Enter(obj); try { // Do work } finally { Monitor::Exit(obj); } C++/CLI does have a 'lock'