Принудительное использование одного экземпляра приложения winform c# - PullRequest
0 голосов
/ 27 мая 2020

Есть ли безопасный способ гарантировать, что в системе работает только один экземпляр приложения, без использования глобальной блокировки мьютекса в приложении? Я обнаружил, что ошибки и ошибки, возникающие во время жизни приложения в памяти, могут привести к множеству проблем в системе, особенно если сравнивать с глобальной блокировкой мьютекса. Мы будем очень благодарны за любые предложения.

Спасибо за чтение.

1 Ответ

1 голос
/ 27 мая 2020

Вы можете использовать Mutex для обеспечения единственного экземпляра приложения. Поместите следующий код в функцию Main вашего приложения WinForms:

static class Program
{
    static Mutex mutex = new Mutex(true, "<some_guid_or_unique_name>");

    [STAThread]
    static void Main()
    {
        if (mutex.WaitOne(TimeSpan.Zero, true))
        {
           // do the app code
           Application.Run();

           // release mutex after the form is closed.
           mutex.ReleaseMutex();
           mutex.Dispose();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...