Es klingt, als ob Sie die Affinität auf den Standardwert zurücksetzen möchten (beachten Sie, dass dies nicht unbedingt derselbe ist wie bei allen Prozessoren, der Standardwert ist 2^n -1, wobei n die Anzahl der Prozessoren ist, siehe the documentation).
Um zum Standard zurückzukehren, speichern Sie den Standard einfach in einer Variablen und weisen Sie ihn dann neu zu.
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);
}
Ergebnisse auf meiner Maschine:
Original-Affinität: 255
Aktuelle Affinität: 1
Schluss Affinität: 255
Sie es unter der Annahme, * war * auf alle Prozessoren gesetzt - vielleicht wurde es anders gestartet. Warum nicht zuerst den Wert von "p.ProcessorAffinity" holen und danach wiederherstellen? –
Haben Sie [die Dokumentation lesen] (https://msdn.microsoft.com/en-us/library/system.diagnostics.process.processoraffinity (v = vs.110) .aspx)? – mason
@mason Wie beantwortet dieser Link diese Frage? – CodeCaster