Il semble que vous souhaitiez rendre l'affinité à la valeur par défaut (gardez à l'esprit que ce n'est pas nécessairement la même chose que tous les processeurs, la valeur par défaut est 2^n -1, où n est le nombre de processeurs, voir the documentation).
Pour revenir à la valeur par défaut, il suffit de stocker la valeur par défaut dans une variable, puis de la réaffecter.
void Main()
{
Process p = Process.GetProcessById(12008);
var originalAffinity = p.ProcessorAffinity;
Console.WriteLine("Original affinity: " + originalAffinity);
p.ProcessorAffinity = (IntPtr)0x0001;
Console.WriteLine("Current affinity: " + p.ProcessorAffinity);
p.ProcessorAffinity = originalAffinity;
Console.WriteLine("Final affinity: " + p.ProcessorAffinity);
}
Résultats sur ma machine:
affinité d'origine: 255
affinité actuelle: 1
affinité final: 255
Vous supposez qu'il était * * mis à tous les processeurs - peut-être qu'il a été lancé différemment. Pourquoi ne pas récupérer la valeur de 'p.ProcessorAffinity' et la restaurer ensuite? –
Avez-vous dérangé [lire la documentation] (https://msdn.microsoft.com/fr-fr/library/system.diagnostics.process.processoraffinity (v = vs.110) .aspx)? – mason
@mason comment ce lien répond-il à cette question? – CodeCaster