解决单声道错误的方法:错误 Process.ProcessName
Workaround for bug in mono: Wrong Process.ProcessName
如果您使用单声道并使用 Process.ProcessName
,您在某些计算机上可能会得到错误的结果。
例如,您可能会得到“kdeinit4
”(在 SUSE 上看到)而不是进程名称“kwrite
”。
在 Ubuntu 我什至看到了像“kdeinit4;5535948c (deleted)
”而不是“kwrite
”这样的废话。
注意:在其他计算机上结果可能是正确的。
如果我使用 Process.MainModule.ModuleName
,它会返回相同的错误名称。
如果我使用 Process.MainModule.FileName
它给出了错误的路径。除此之外,这些命令非常慢。
所以无论我尝试什么,它都充满了错误。
我能做什么?
解决方法可以用两行来完成:
String sProcFile = String.Format("/proc/{0}/comm", proc.Id);
String sProcName = File.ReadAllText(sProcFile).Trim();
它在所有 ProcessName
失败的计算机上都非常有效。
如果您使用单声道并使用 Process.ProcessName
,您在某些计算机上可能会得到错误的结果。
例如,您可能会得到“kdeinit4
”(在 SUSE 上看到)而不是进程名称“kwrite
”。
在 Ubuntu 我什至看到了像“kdeinit4;5535948c (deleted)
”而不是“kwrite
”这样的废话。
注意:在其他计算机上结果可能是正确的。
如果我使用 Process.MainModule.ModuleName
,它会返回相同的错误名称。
如果我使用 Process.MainModule.FileName
它给出了错误的路径。除此之外,这些命令非常慢。
所以无论我尝试什么,它都充满了错误。 我能做什么?
解决方法可以用两行来完成:
String sProcFile = String.Format("/proc/{0}/comm", proc.Id);
String sProcName = File.ReadAllText(sProcFile).Trim();
它在所有 ProcessName
失败的计算机上都非常有效。