Я перепробовал все решения здесь, и в моем проекте на C # .net 4.0 ничего не получалось. Надеюсь помочь кому-нибудь здесь решение, которое сработало для меня:
В качестве переменных основного класса:
private static string appGuid = "WRITE AN UNIQUE GUID HERE";
private static Mutex mutex;
Когда вам нужно проверить, запущено ли уже приложение:
bool mutexCreated;
mutex = new Mutex(true, "Global\\" + appGuid, out mutexCreated);
if (mutexCreated)
mutex.ReleaseMutex();
if (!mutexCreated)
{
//App is already running, close this!
Environment.Exit(0); //i used this because its a console app
}
Мне нужно было закрыть другие экземпляры только с некоторыми условиями, это хорошо сработало для моей цели