在运行以下应用程序的第一个实例时,它会打印“Acquired”。但是,如果我开始第二个,它会等待 1 分钟。在该时间间隔内,如果按下回车键并离开“第一个实例”,它会在第二个实例中引发“由于放弃互斥锁而导致等待完成”异常。不是假设要获取线程吗?(因为第一个实例已经发布了它?!)
using (var m1 = new Mutex(false, "consoleapp"))
{
if (!m1.WaitOne(60000, false))
{
Console.WriteLine("It is already runnig");
}
else
{
Console.WriteLine("Acquired");
Console.ReadLine();
}
}