.NET Framework
प्रोसेस और थ्रेड एफिनिटी सेटिंग
खोज…
पैरामीटर
पैरामीटर | विवरण |
---|---|
आत्मीयता | पूर्णांक जो प्रोसेसर के सेट का वर्णन करता है, जिस पर प्रक्रिया को चलाने की अनुमति है। उदाहरण के लिए, 8 प्रोसेसर सिस्टम पर यदि आप चाहते हैं कि आपकी प्रक्रिया केवल प्रोसेसर 3 और 4 पर ही क्रियान्वित हो, तो आप इस तरह से आत्मीयता चुनें: 00001100 जो 12 के बराबर है |
टिप्पणियों
एक धागे का प्रोसेसर आत्मीयता प्रोसेसर का वह सेट है जिसका उससे संबंध होता है। दूसरे शब्दों में, इसे चलाने के लिए निर्धारित किया जा सकता है।
प्रोसेसर की आत्मीयता प्रत्येक प्रोसेसर को थोड़ा सा दर्शाती है। बिट 0 प्रोसेसर एक का प्रतिनिधित्व करता है, बिट 1 प्रोसेसर दो का प्रतिनिधित्व करता है, और इसी तरह।
प्रक्रिया आत्मीयता मुखौटा प्राप्त करें
public static int GetProcessAffinityMask(string processName = null)
{
Process myProcess = GetProcessByName(ref processName);
int processorAffinity = (int)myProcess.ProcessorAffinity;
Console.WriteLine("Process {0} Affinity Mask is : {1}", processName, FormatAffinity(processorAffinity));
return processorAffinity;
}
public static Process GetProcessByName(ref string processName)
{
Process myProcess;
if (string.IsNullOrEmpty(processName))
{
myProcess = Process.GetCurrentProcess();
processName = myProcess.ProcessName;
}
else
{
Process[] processList = Process.GetProcessesByName(processName);
myProcess = processList[0];
}
return myProcess;
}
private static string FormatAffinity(int affinity)
{
return Convert.ToString(affinity, 2).PadLeft(Environment.ProcessorCount, '0');
}
}
उपयोग का उदाहरण:
private static void Main(string[] args)
{
GetProcessAffinityMask();
Console.ReadKey();
}
// Output:
// Process Test.vshost Affinity Mask is : 11111111
प्रक्रिया आत्मीयता मुखौटा सेट करें
public static void SetProcessAffinityMask(int affinity, string processName = null)
{
Process myProcess = GetProcessByName(ref processName);
Console.WriteLine("Process {0} Old Affinity Mask is : {1}", processName, FormatAffinity((int)myProcess.ProcessorAffinity));
myProcess.ProcessorAffinity = new IntPtr(affinity);
Console.WriteLine("Process {0} New Affinity Mask is : {1}", processName, FormatAffinity((int)myProcess.ProcessorAffinity));
}
उपयोग का उदाहरण:
private static void Main(string[] args)
{
int newAffinity = Convert.ToInt32("10101010", 2);
SetProcessAffinityMask(newAffinity);
Console.ReadKey();
}
// Output :
// Process Test.vshost Old Affinity Mask is : 11111111
// Process Test.vshost New Affinity Mask is : 10101010
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow