我目前正在尝试在c#中创建一个“看门狗”,以检查是否正在使用互斥锁,如果一切都很好,如果不是,则->启动应用程序。
第一次运行良好,但是一旦主应用程序停止/结束,它就不会意识到这一点。它仍然认为互斥锁正在使用中,并且似乎也将其锁定在看门狗进程中?
string mutexdog = "dog";
try
{
Mutex.OpenExisting(mutexdog);
System.Environment.Exit(0);
}
catch
{
Program._m = new Mutex(true, mutexdog);
}
while(true)
{
string mutexmain = "main";
try
{
Mutex.OpenExisting(mutexmain);
Console.WriteLine("Main is running");
}
catch
{
Console.WriteLine("Main is not running, starting!");
Process p = new Process();
p.StartInfo.FileName = "main.exe";
p.Start();
Thread.Sleep(1500);
}
Thread.Sleep(500);
}
有没有办法检查互斥锁是否在使用中而不将其锁定?由于多个原因以及我之前通过检查进程名称而遇到的其他问题,我宁愿使用互斥锁而不是互斥锁。