.NET फ्रेमवर्क का उपयोग करके अपने स्वयं के अनुप्रयोग से वर्तमान प्रक्रिया आईडी प्राप्त करने का सबसे सरल तरीका क्या है?
जवाबों:
मौजूदा प्रक्रिया और उपयोग के लिए एक संदर्भ प्राप्त System.Diagnosticsकी Process.Idसंपत्ति:
int nProcessID = Process.GetCurrentProcess().Id;
Process.GetCurrentProcess().Id
या, चूंकि Processवर्ग है IDisposable, और आपके एप्लिकेशन के चलने के दौरान प्रोसेस आईडी बदलने वाली नहीं है, तो आपके पास स्थैतिक संपत्ति के साथ एक सहायक वर्ग हो सकता है:
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 क्योंकि यह आवंटन से बचता है और प्रक्रिया ऑब्जेक्ट को निपटाने की आवश्यकता है।
https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/ एक बेंचमार्क दिखाता है जहां Environment.ProcessIdकेवल 68ns के बजाय 3ns लगते हैं Process.GetCurrentProcess().Id।