Возможно ли синхронизовать процессы используя имя исполняемо
От: MaLS Россия https://github.com/maliutin
Дата: 15.02.22 09:31
Оценка:
Копаюсь в очень легаси коде, в котором наткнулся а то, что повторный запуск 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 файла. В результате исследования кода выяснилось, что это требование реализуется выше представленным алгоритмом. И теперь требуется дать обоснование, что данный код полностью реализует это требование. Если нет, то объяснить почему и поставить в план на переделывание. Под что соответственно будут выделены ресурсы.
----
"Ответить на вопрос — значит согласиться с правильностью его постановки.", Карстен Бредемайер
Отредактировано 15.02.2022 14:03 MaLS . Предыдущая версия .
.net windows
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.