我用
Mutex.TryOpenExisting()
。我想知道线程安全吗?
public class MutexNamedSystemDemo
{
private const string _mutexName = @"Global\{C7F2DE44-8927-4B01-B8E1-D8F158A483A8}";
private static Mutex _mutex;
private static bool _intiallyOwned = false;
private static int _count = 0;
/*public MutexNamedSystemDemo()
{
_mutex = new Mutex(_intiallyOwned, _mutexName);
}*/
public void Main()
{
if (Mutex.TryOpenExisting(_mutexName, out _mutex) == false)
_mutex = new Mutex(_intiallyOwned, _mutexName);
}
}
有时执行时会出现
_mutex
为null
的错误。如果是线程安全的,为什么会出现这种情况?