Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C#'s lock() in Managed C++

Tags:

Does managed C++ have an equivalent to C#'s lock() and VB's SyncLock? If so, how do I use it?

like image 328
Brian Avatar asked Sep 02 '09 18:09

Brian


People also ask

Bahasa C digunakan untuk apa?

Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia.

C dalam Latin berapa?

C adalah huruf ketiga dalam alfabet Latin. Dalam bahasa Indonesia, huruf ini disebut ce (dibaca [tʃe]).

Bahasa C dibuat pertama kali oleh siapa dan tahun berapa?

Bahasa pemrograman C ini dikembangkan antara tahun 1969 – 1972 oleh Dennis Ritchie. Yang kemudian dipakai untuk menulis ulang sistem operasi UNIX. Selain untuk mengembangkan UNIX, bahasa C juga dirilis sebagai bahasa pemrograman umum.


1 Answers

C++/CLI does have a lock class. All you need to do is declare a lock variable using stack-based semantics, and it will safely exit the monitor when its destructor is called, e.g.:

#include <msclr\lock.h> {         msclr::lock l(m_lock);      // Do work  } //destructor of lock is called (exits monitor).   

m_lock declaration depends on whether you are synchronising access to an instance or static member.

To protect instance members, use this:

Object^ m_lock = gcnew Object(); // Each class instance has a private lock -                                   // protects instance members. 

To protect static members, use this:

static Object^ m_lock = gcnew Object(); // Type has a private lock -                                         // protects static members. 
like image 169
Sereger Avatar answered Sep 20 '22 00:09

Sereger