我创建这样一个对象:互斥对象创建
if (_cleaner == null)
{
_creation.WaitOne();
try
{
if (_cleaner == null)
{
//create object
}
}
finally
{
_creation.ReleaseMutex();
}
}
我之所以做了仔细检查,是因为两个线程可以同时来创建对象,然后我需要明明只有一个创建一个东西。有没有更好的方法来做到这一点? 所以我不必检查对象的存在两次?
这应该没问题。这是乐观悲观的做法 –
为什么使用Mutex?你需要这个进行跨进程同步吗? – argaz
并不重要,你可以使用锁定,但性能会是相同的 – Windys