.NET Framework를 사용하여 자신의 응용 프로그램에서 현재 프로세스 ID를 얻는 가장 간단한 방법은 무엇입니까?
답변:
현재 프로세스에 대한 참조를 가져오고 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 는 할당과 Process 객체를 폐기 할 필요가 없기 때문에 Environment.ProcessId
선호되어야하는 것을 소개 Process.GetCurrentProcess().Id
합니다.
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/ 는 Environment.ProcessId
.NET Framework에서 68ns 대신 3ns 만 사용 하는 벤치 마크를 보여줍니다 Process.GetCurrentProcess().Id
.