2017-01-30 4 views
0

Ich habe ein Projekt, das in C++ geschrieben ist, die Funktionalität der Dateikopie und Ordner-Erstellung hat. Es verwendet die Methoden Mutex.Lock() und Mutex.unLock() in C++.C++ Mutex Ersatz in Cis

Ich muss das gleiche in C# replizieren.

Bitte schlagen Sie vor, welcher der beste Weg ist, um die C++ - Methoden mutext.Lock() und Mutex.unlock() in C# zu schreiben?

+1

Es gibt eine [Mutex] (https://msdn.microsoft.com /en-us/library/system.threading.mutex(v=vs.110).aspx) Klasse in C# – Pikoh

+1

Sie suchen nach der 'lock' Anweisung. Oder für 'Monitor.Enter/Exit'. – Matthias247

+0

Ich möchte tun, was Mutex.Lock in C++ tut. – user1947862

Antwort

0

C++ hat keine Mutex Klasse. Es hat std::mutex, die .lock() und .unlock() bereitstellt.

also in C++ Sie haben,

std::mutex mtx; 

void thr_fnc(){ 
    mtx.lock(); 
    // CS 
    mtx.unlock(); 
} 

gleiche Funktionalität in C# Um das zu erreichen, was Sie tun können

Mutex mtx = new Mutex(); 

void thr_fnc(){ 
    mtx.WaitOne(); 
    // CS 
    mtx.ReleaseMutex(); 
} 
+0

Sie sollten 'Mutex' im Normalfall nicht verwenden, da es schwerer ist als' Monitor' oder die 'lock'-Anweisung für ein beliebiges Sperrobjekt. Siehe zum Beispiel hier: http://stackoverflow.com/questions/1164038/monitor-vs-mutex-in-c-sharp – Matthias247

+0

@ Matthias247 Guter Punkt. – Zereges

+0

Hi ..In C Shar, Mutext.Dispose ist erforderlich? stellt Realease Mutex Realease und disposed den Thread? – user1947862