使用.NET Framework从您自己的应用程序中获取当前进程ID的最简单方法是什么?
Answers:
获取对当前流程的引用并使用System.Diagnostics
的Process.Id
属性:
int nProcessID = Process.GetCurrentProcess().Id;
Process.GetCurrentProcess().Id
或者,由于Process
该类为IDisposable
,并且在应用程序运行时进程ID不会更改,因此您可以使用具有静态属性的帮助程序类:
public static int ProcessId
{
get
{
if (_processId == null)
{
using(var thisProcess = System.Diagnostics.Process.GetCurrentProcess())
{
_processId = thisProcess.Id;
}
}
return _processId.Value;
}
}
private static int? _processId;
即将推出的.NET 5引入了Environment.ProcessId
优先选择,Process.GetCurrentProcess().Id
因为它避免了分配,并且不需要处理Process对象。
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/显示了一个基准测试,其中Environment.ProcessId
使用只需3ns而不是68ns Process.GetCurrentProcess().Id
。