C# 获得 ProcessThread 操作系统进程线程 对象 ProcessThreadC#操作系统进程线程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 msdn上ProcessThread类页面里写了:"若要获取与当前进程关联的所有 ProcessThread 对象的集合,请获取 Process 实例的 Threads 属性。"比如:var threads = Process.GetCurrentProcess().Threads; 我是想用C#实现,让我的程序在指定的CPU核上运行。有帖子提到用ProcessThread IdealProcessorProcessorAffinity但是我不知道怎么用我的代码var threads = Process.GetCurrentProcess().Threads; foreach (ProcessThread pt in threads) { pt.IdealProcessor = 1; pt.ProcessorAffinity = (IntPtr)0x0001; }不管用。 我是看了变成之美,让CPU占用率曲线听你指挥。书上直说了单核CPU情况下的方法。我想实现多核CPU下的实现方法。我的程序var threads = Process.GetCurrentProcess().Threads; foreach (ProcessThread pt in threads) { pt.IdealProcessor = 1; pt.ProcessorAffinity = (IntPtr)0x0001; } Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)0x0001; //可以手工输入1-100任意数值的暂用率,动态设定 Console.Write("Which percent you will to use (Range(1-100),Start from 1):"); string percent = Console.ReadLine(); float level = 1; float.TryParse(percent, out level); PerformanceCounter p = new PerformanceCounter("Processor", "% Processor Time", "0"); while (true) { float nv = p.NextValue(); if (nv >= level) System.Threading.Thread.Sleep(10); else { } } 我用任务管理器看CPU没什么变化。但是 p.NextValue();有取到100.00的时候。 把while(true)里面的东西全注释掉就能看出来效果了。这代码不对,p.NextValue();这样不停的取的话,大部分时间不是0,就是100,那总会执行到Sleep,所以没有效果。 注释以后,指定核的使用率就一直是100%了。那我要如何控制指定核的CPU使用率是50%呢? Listview的Details模式下如何拖动内容排序 listview选中某项如何不变蓝色背景和字体颜色 单核CPU死循环问题 有没有办法在同一个程序中用多个WebBrowser,维护多个账号的登录状态呢? c#中datagrid如何设定特定一列不可修改 c#多线程调用 急求,,,如何用C#编写一个石头剪刀布游戏程序 那个高手帮帮忙 请教控件坐标问题。 c#调用c++编写的dll总是出现问题,哪位高手帮帮忙 tcp调试技巧 code first问题
ProcessThread
IdealProcessor
ProcessorAffinity
但是我不知道怎么用
我的代码
var threads = Process.GetCurrentProcess().Threads;
foreach (ProcessThread pt in threads)
{
pt.IdealProcessor = 1;
pt.ProcessorAffinity = (IntPtr)0x0001;
}
不管用。
我的程序
var threads = Process.GetCurrentProcess().Threads;
foreach (ProcessThread pt in threads)
{
pt.IdealProcessor = 1;
pt.ProcessorAffinity = (IntPtr)0x0001;
} Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)0x0001;
//可以手工输入1-100任意数值的暂用率,动态设定
Console.Write("Which percent you will to use (Range(1-100),Start from 1):");
string percent = Console.ReadLine();
float level = 1;
float.TryParse(percent, out level); PerformanceCounter p = new PerformanceCounter("Processor", "% Processor Time", "0");
while (true)
{
float nv = p.NextValue();
if (nv >= level)
System.Threading.Thread.Sleep(10);
else {
}
}
这代码不对,p.NextValue();这样不停的取的话,大部分时间不是0,就是100,那总会执行到Sleep,所以没有效果。
那我要如何控制指定核的CPU使用率是50%呢?