代码如下:
public MainWindow()
{
InitializeComponent();
for (int i = 0; i < 500; i++)
{
Task.Run(task);
}
}
public async Task task()
{
while (true)
{
//await Task.Delay(1);
//Thread.Sleep(1);
}
}
当使用await Task.Delay(1)时,cpu占用率很高,用Thread.Sleep(1)去阻塞线程可以降低占用率,但是这样用会不会有什么影响
你用多线程不就是为了提高CPU占用率吗?
是想在使用多线程的基础上,去降低cup占用
@冷静的疯子: 你弄个暂停没意义的,
你要优化肯定是实际运算上的优化,这种CPU占用不是真实的,只是骗自己的。
你具体把算法写出来,然后优化下算法,再看CPU占用前后变化,
用 Thread.Sleep 。。。
怎么不用线程池呢。Task.TaskFactory.New(...)这样子
信号量限制并发度