4
我已經安裝了NCrunch,它是用於(除其他之外)並行測試執行的工具。它提供了兩個設置MaxNumberOfUsedCores和MaxNumberOfUsedThreads。第一個設置看起來很有趣。我不記得任何可以控制用於執行代碼的核心的.NET手段。所以問題是如何做到這一點?控制並行執行的內核數量
我已經安裝了NCrunch,它是用於(除其他之外)並行測試執行的工具。它提供了兩個設置MaxNumberOfUsedCores和MaxNumberOfUsedThreads。第一個設置看起來很有趣。我不記得任何可以控制用於執行代碼的核心的.NET手段。所以問題是如何做到這一點?控制並行執行的內核數量
你試過ProcessThread.ProcessorAffinity
? ProcessorAffinity
將每個處理器表示爲。位0表示處理器1,位1表示處理器2,依此類推。例如:
var currectProcess = System.Diagnostics.Process.GetCurrentProcess();
foreach(System.Diagnostics.ProcessThread thread in currectProcess.Threads)
{
// this could give you something similar to MaxNumberOfUsedCores
thread.ProcessorAffinity = (IntPtr)0x0007; // Valid processors: 1, 2, or 3
}
現在我具有以下在NCrunch配置,即正在非常類似於以前的C#樣品:分配給NCrunch
但是隻有筆者可以告訴我們,是真的還是假的。
btw:ReSharper有類似的選項來控制unittests的並行運行線程的數量。
也許 - > http://stackoverflow.com/questions/2823076/forcing-an-app-to-run-single-core-only和http://stackoverflow.com/questions/3429999/force-c-尖銳的應用程序使用的-A-單核-IN-A-PC-與-A-多核processo –