Допустим, у меня есть приложение, написанное на C #, которое называется EquipCtrl.exe, которое выполняется как локальный процесс на ПК для управления оборудованием.
Очевидно, я бы хотел, чтобы на каждом ПК работал только один экземпляр Equipctrl. Если бы у меня было два устройства для управления на ПК, я бы ограничил его двумя экземплярами на ПК.
То, как я это сделал, было одним из
1. Название процесса. Я называю процесс EqCtrl и при запуске процесса он будет считать число процессов с именем «EqCtrl».
2. Имя исполнения. При запуске подсчитайте количество процессов с именем выполнения EquipCtrl.exe.
3. Реестр записей.
4. Запись базы данных SQL Server.
Для меня обнаружение имени процесса или имени выполнения - самое простое и то, что я делаю больше всего (если не все) времени. Но они подвержены конфликтам имен. Даже если я пойду дальше и выясню путь выполнения, ограничение можно обойти, скопировав файл выполнения в другую папку.
Каков наилучший способ ограничения выполнения в .NET? Зачем? Является ли запись в реестре лучшим способом?