如何不占用过多cpu资源来消耗时间?

isfiefiq 2020-09-23 01:06:54
不能直接使用sleep,不能调用三方程序,比如ping之类的。

我的思路是进行N此循环,但是发现占用超过50%的CPU,有什么好的思路吗?

----------------分割线----------------
又想到了利用网络IO延时来占用时间,还有更好的办法吗
...全文
1128 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
张天星 2020-10-14
  • 打赏
  • 举报
回复
为何不用sleep,你在使用Sleep的时候遇到了什么问题,它造成了什么影响可以大概说下么。 因为等待的话,一般就是使用Sleep,或者Task.Delay
狂野的小强 2020-10-14
  • 打赏
  • 举报
回复
你可以在你业务上的代码写个等待锁,然后单开个线程,5s释放一个锁
strife013 2020-09-23
  • 打赏
  • 举报
回复
//引入高性能计数器API,通过对CPU计数完成计时 [DllImport("Kernel32.dll")] private static extern bool QueryPerformanceCounter(out long lpPerformanceCount); //获取当前CPU的工作频率 [DllImport("Kernel32.dll")] private static extern bool QueryPerformanceFrequency(out long lpFrequency);
ziqi0716 2020-09-23
  • 打赏
  • 举报
回复
为何不用sleep?你的意思明明就是想要休眠,却又不休眠?嘴上说着不身体却很诚实,你这倒好,刚好相反,嘴上说想要,身体却往后退. 如果你是不想阻塞主线程,那就在新线程里面执行,不影响主线程即可,或者使用异步方法.
threenewbee 2020-09-23
  • 打赏
  • 举报
回复
在 await 没有出来以前,有程序员用 yield 模拟
  • 打赏
  • 举报
回复
sleep 定时器 或者 wait 得用一个啊。 循环是不好干这个的, 丶
tcmakebest 2020-09-23
  • 打赏
  • 举报
回复
WaitHandle a = new AutoResetEvent(false); a.WaitOne(5000);
tcmakebest 2020-09-23
  • 打赏
  • 举报
回复
没有目的只求绕路, 那得到的这条线路有什么用

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧