Я сейчас пытаюсь создать «сторожевой таймер» в 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);
}
Есть ли способ проверить, используется ли мьютекс, не блокируя его?Я бы предпочел сделать это по мьютексу из-за множества причин и других проблем, которые у меня были ранее, путем проверки имени процесса ...