Информация об изменениях

Сообщение Возможно ли синхронизовать процессы используя имя исполняемо от 15.02.2022 9:31

Изменено 15.02.2022 14:03 MaLS

Возможно ли синхронизовать процессы используя имя исполняемого файла?
Копаюсь в очень легаси коде, в котором наткнулся а то, что повторный запуск exe файла контролируется по средствам проверки наличия процесса с таким же именем.

Утрированно код написанный под .net 4.5 выглядит так:

using System;
using System.Diagnostics;

namespace ConsoleApp6
{
    class Program
    {
        static void Main(string[] args)
        {
            if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1)
            {
                Console.WriteLine("ALREADY RUNNING");
                return;
            }

            Console.WriteLine("RUN");
        }
    }
}


В своей практике для синхронизации процессов всегда использовал Mutex и как то не задумывался про контроль процессов по имени.

Теперь же требуется обосновать правильность или неправильность такого подхода.

Кинте, пожалуйста, ссылки на документацию или статьи майкрософитовцев, которые говорят что-нибудь о таком подходе.
.net windows
Возможно ли синхронизовать процессы используя имя исполняемо
Копаюсь в очень легаси коде, в котором наткнулся а то, что повторный запуск exe файла контролируется по средствам проверки наличия процесса с таким же именем.

Утрированно код написанный под .net 4.5 выглядит так:

using System;
using System.Diagnostics;

namespace ConsoleApp6
{
    class Program
    {
        static void Main(string[] args)
        {
            if (Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1)
            {
                Console.WriteLine("ALREADY RUNNING");
                return;
            }

            Console.WriteLine("RUN");
        }
    }
}


В своей практике для синхронизации процессов всегда использовал Mutex и как то не задумывался про контроль процессов по имени.

Теперь же требуется обосновать правильность или неправильность такого подхода.

Кинте, пожалуйста, ссылки на документацию или статьи майкрософитовцев, которые говорят что-нибудь о таком подходе.

UPD

Для программы есть требование, что в рамках одного запущенного Windows должен запускаться только один процесс exe файла. В результате исследования кода выяснилось, что это требование реализуется выше представленным алгоритмом. И теперь требуется дать обоснование, что данный код полностью реализует это требование. Если нет, то объяснить почему и поставить в план на переделывание. Под что соответственно будут выделены ресурсы.
.net windows