.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;
今後の.NET5では、割り当てやProcessオブジェクトを破棄する必要がないため、Environment.ProcessId
どちらを優先する必要があるかが導入されていProcess.GetCurrentProcess().Id
ます。
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/は、Environment.ProcessId
68nsではなく3nsしかかからないベンチマークを示していますProcess.GetCurrentProcess().Id
。