GetProcessesByName возвращает неверные результатыC#

Место общения программистов C#
Ответить
Anonymous
 GetProcessesByName возвращает неверные результаты

Сообщение Anonymous »

Моя программа на C# использует следующий код, чтобы определить, запущена ли она:

Код: Выделить всё

Process CurProcess = Process.GetCurrentProcess();
Process[] CurProcesses = System.Diagnostics.Process.GetProcessesByName(CurProcess.ProcessName);

if (CurProcesses.Length > 1)
... // Already running
Я использую это без проблем уже много лет. Но за последний месяц двое моих пользователей сообщили, что он ошибочно сообщает, что программа запущена, хотя на самом деле это не так.
Для одного из пользователей я проверил это лично — программа действительно не запускалась, как указано как в диспетчере задач, так и в командной строке, несмотря на приведенный выше код, сообщающий, что она запущена. Я немного повозился и переместил исполняемый файл, прежде чем вернуть его обратно, а затем, когда я снова запустил программу, она больше не сообщала ошибочно, что процесс запущен.
Похоже, что некоторые бухгалтерские данные Windows периодически устаревают. По-настоящему раздражает то, что оба пользователя сообщают, что время от времени проблема сохраняется после перезапуска - он ошибочно думает, что уже запущен, хотя это определенно не так.
Программа довольно старая и недавно была обновлена ​​для поддержки .NET Framework 4.8. Я не уверен, что это часть проблемы. Я не нашел похожих тем. Спасибо за любую информацию.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ct-results
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»