如何获取当前的ProcessID?


80

使用.NET Framework从您自己的应用程序中获取当前进程ID的最简单方法是什么?


2
真正。我猜这里出了点问题:D @VictorYarema
Deniz

Answers:


120

获取对当前流程的引用并使用System.DiagnosticsProcess.Id属性:

int nProcessID = Process.GetCurrentProcess().Id;

2
使用System.Diagnostics; 或System.Diagnostics.Process.GetCurrentProcess()。Id; 我总是保护自己,并假设当前或将来的策略规则将以某种锁定或限制性模式限制此调用,因为它可以访问流程区域。
Sql Surfer

16
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;

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.