Копаюсь в очень легаси коде, в котором наткнулся а то, что повторный запуск 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 файла. В результате исследования кода выяснилось, что это требование реализуется выше представленным алгоритмом. И теперь требуется дать обоснование, что данный код полностью реализует это требование. Если нет, то объяснить почему и поставить в план на переделывание. Под что соответственно будут выделены ресурсы.