1

IE を起動し、アフィニティを特定の単一の CPU に設定する必要があります。次の c# コードを実行すると、予想どおり notepad.exe が開始され、そのアフィニティが cpu2 に設定されますが、奇妙に iexplore.exe がそのアフィニティが cpu0 に設定されて開始されます。ProcessorAffinity を iexplore.exe に設定しても、常に cpu0 になります。

これを 4 コア xp 32 ビットおよび 4 コア 2008 64 ビット (どちらも IE8) でテストしました。

using System;
using System.Diagnostics;
public class Launch
{

    public static void Main(string[] args)
    {
        lauchWithAffinity("c:/windows/system32/notepad.exe");
        lauchWithAffinity("c:/Program Files/Internet Explorer/IEXPLORE.EXE");
    }
    static void lauchWithAffinity(string exePath)
    {
        ProcessStartInfo start = new ProcessStartInfo();
        start.FileName = exePath;
        Process myProcess =Process.Start(start);
        myProcess.ProcessorAffinity = (System.IntPtr)4; //3rd cpu aka cpu2 
        //http://msdn.microsoft.com/en-us/library/system.diagnostics.process.processoraffinity.aspx
    }

}
4

1 に答える 1

0

私はあなたのプログラムをテストしました、そしてそれは私のためにうまく働きます。タスクマネージャーをチェックインしたところ、のアフィニティはiexplore.exeCPU2に設定されています。

于 2012-05-10T08:44:01.077 に答える