如何在循环时不让程序占100%cpu? 除了用多线程,还有别的方法吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知道是什么样的循环,如果是纯粹不让cpu满,可以用 thread.sleep 几毫秒,副作用是那个循环比较慢。 http://blog.csdn.net/wuyazhe/archive/2007/09/04/1771470.aspx我这里有个用信号量的例子,你这里也可以用这个类。 你的问题就不清楚,如果你一个业务只能用while(true)这样的语句来做的话,那就和线程无关,而你应该用多线程而没有用,也达不到业务需求。如果是单线程程序,通过让thread.sleep几毫秒是可以解决CPU100%问题的。如果是多线程,你就要找原因,譬如线程生成过多,线程生命期过短,等等,都会造成。这时譬如改善单个线程的CPU占用率,或者采用线城池技术都回针对不同问题,解决一些。 不知道你的循环要干什么?单纯不让cpu 100% 可以sleep sleep吧.虽然程序可能会稍稍慢点 速度跟CPU占用率是成正比的 异步(每次操作完后就Sleep一下)呵呵... 最简单的是在循环里面加Application.DoEvents();将控制权交给系统,for (int i = 0; i < dt.Rows.Count; i++) { Application.DoEvents(); //其他代码; this.text = i; }满足不是很严密的需求参考。 cpu就是用来用的,100%就100%呗,如果想对其他程序减少影响,可以降低运算线程的优先级 作业贴 c#windows应用程序 帮忙三角剖分的一个错误 ===========Mongodb C# 驱动的问题 ============ 相对路径发生改变的问题 在C#中怎样使用HOOK函数 关于一个1维数组的问题 急!急!急!急!帮我看看代码!! 在线等~~~~ 菜鸟问题:什么是并发错误? 框架中listbox中的值的传递问题,高分急等 如何将字符串转换成ASCII 怎样显示查询结果? 高分求救!各位大哥,大姐!(菜鸟问题)---请问如何将数据库中的数据采集出来,然后放到另一台服务器的数据库上?????????????????????
如果是单线程程序,通过让thread.sleep几毫秒是可以解决CPU100%问题的。
如果是多线程,你就要找原因,譬如线程生成过多,线程生命期过短,等等,都会造成。
这时譬如改善单个线程的CPU占用率,或者采用线城池技术都回针对不同问题,解决一些。
速度跟CPU占用率是成正比的
{
Application.DoEvents(); //其他代码; this.text = i;
}满足不是很严密的需求参考。