GetProcessesByName gibt falsche Ergebnisse zurückC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 GetProcessesByName gibt falsche Ergebnisse zurück

Post by Anonymous »

Mein C#-Programm verwendet den folgenden Code, um zu erkennen, ob es bereits ausgeführt wird:

Code: Select all

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

if (CurProcesses.Length > 1)
... // Already running
Ich verwende es seit vielen Jahren ohne Probleme. Aber im letzten Monat haben zwei meiner Benutzer berichtet, dass fälschlicherweise angegeben wurde, dass das Programm ausgeführt wird, obwohl dies nicht der Fall ist.
Bei einem der Benutzer habe ich dies persönlich überprüft: Das Programm wurde tatsächlich nicht ausgeführt, wie sowohl im Task-Manager als auch in der Eingabeaufforderung aufgeführt, obwohl der obige Code anzeigte, dass es ausgeführt wurde. Ich habe ein bisschen herumgespielt und die ausführbare Datei verschoben, bevor ich sie gleich wieder zurück verschoben habe. Als ich dann das Programm erneut ausgeführt habe, wurde nicht mehr fälschlicherweise angezeigt, dass der Prozess ausgeführt wird.
Es scheint, als ob einige Windows-Buchhaltungen zeitweise irgendwie veraltet sind. Das wirklich Ärgerliche ist, dass beide Benutzer berichtet haben, dass das Problem ab und zu beim Neustart weiterhin besteht – es geht fälschlicherweise davon aus, dass es bereits ausgeführt wird, obwohl dies mit Sicherheit nicht der Fall ist.
Das Programm ist ziemlich alt und wurde kürzlich aktualisiert, um auf .NET Framework 4.8 abzuzielen. Ich bin mir nicht sicher, ob das Teil des Problems ist. Ich habe keine ähnlichen Threads gefunden. Vielen Dank für jeden Einblick.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post