Was ist der einfachste Weg, um die aktuelle Prozess-ID mithilfe von .NET Framework aus Ihrer eigenen Anwendung abzurufen?
Antworten:
Holen Sie sich einen Verweis auf den aktuellen Prozess und verwenden Sie System.Diagnostics
die Process.Id
Eigenschaft:
int nProcessID = Process.GetCurrentProcess().Id;
Process.GetCurrentProcess().Id
Da die Process
Klasse ist IDisposable
und sich die Prozess-ID nicht ändert, während Ihre Anwendung ausgeführt wird, können Sie auch eine Hilfsklasse mit einer statischen Eigenschaft haben:
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;
Das kommende .NET 5 wird vorgestellt, Environment.ProcessId
das vorzuziehen ist, Process.GetCurrentProcess().Id
da Zuordnungen vermieden werden und das Prozessobjekt entsorgt werden muss.
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/ zeigt einen Benchmark, bei dem Environment.ProcessId
nur 3 ns statt 68 ns benötigt werden Process.GetCurrentProcess().Id
.