我有一個用C++編寫的項目,它具有文件複製和文件夾創建的功能。它使用C++中的Mutex.Lock()
和Mutex.unLock()
方法。c C中的互斥鎖替換
我需要在C#中複製相同的內容。
請提出在C#中編寫C++方法mutext.Lock()
和Mutex.unlock()
的最佳方法是什麼?
我有一個用C++編寫的項目,它具有文件複製和文件夾創建的功能。它使用C++中的Mutex.Lock()
和Mutex.unLock()
方法。c C中的互斥鎖替換
我需要在C#中複製相同的內容。
請提出在C#中編寫C++方法mutext.Lock()
和Mutex.unlock()
的最佳方法是什麼?
C++沒有Mutex
類。它有std::mutex
,它提供了.lock()
和.unlock()
。
因此,在C++中你有,
std::mutex mtx;
void thr_fnc(){
mtx.lock();
// CS
mtx.unlock();
}
爲了實現在C#中相同的功能,你可以做
Mutex mtx = new Mutex();
void thr_fnc(){
mtx.WaitOne();
// CS
mtx.ReleaseMutex();
}
你不應該在正常情況下使用'Mutex',因爲它比任何鎖對象上的'Monitor'或'lock'語句更重。看例如這裏:http://stackoverflow.com/questions/1164038/monitor-vs-mutex-in-c-sharp – Matthias247
@ Matthias247好點。 – Zereges
嗨..在C sharp,mutext.Dispose是必需的嗎?請釋放互斥鎖並釋放線程? – user1947862
有一個[互斥(https://msdn.microsoft.com /en-us/library/system.threading.mutex(v=vs.110).aspx)c#中的類 – Pikoh
您正在尋找'lock'語句。或者'Monitor.Enter/Exit'。 – Matthias247
我想做Mutex.Lock在C++中做的事情.. – user1947862