我創建這樣一個對象:互斥對象創建
if (_cleaner == null)
{
_creation.WaitOne();
try
{
if (_cleaner == null)
{
//create object
}
}
finally
{
_creation.ReleaseMutex();
}
}
我之所以做了仔細檢查,是因爲兩個線程可以同時來創建對象,然後我需要明明只有一個創建一個東西。有沒有更好的方法來做到這一點? 所以我不必檢查對象的存在兩次?
這應該沒問題。這是樂觀悲觀的做法 –
爲什麼使用Mutex?你需要這個進行跨進程同步嗎? – argaz
並不重要,你可以使用鎖定,但性能會是相同的 – Windys