dsp*_*099 2 c# cpu performance loops timer
我有一个程序,开始不断在三个独立的计时器之间玩杂耍.
我的应用程序的主线程有一个while循环,不断检查全局变量是否已设置为true,如果有,它将停止一个计时器并启动另外两个 - 一个连续,另一个自动停止它,如果它不是'无论出于何种原因,他都要求停下来.
这个while循环的条件为(1 == 1),因此它会永远运行.
在任务管理器(XP)中,我看到我的程序在或多或少闲置的系统上占用了50%的CPU.
有没有办法通过降低while循环的速度来减少这个数字?
谢谢.
Jon*_*eet 11
有没有办法通过降低while循环的速度来减少这个数字?
只是停止忙碌的循环.有更好的方法来协调线程之间的事件.考虑使用Monitor.Wait/ Pulse,或AutoResetEvent/ ManualResetEvent.基本上,设置全局变量的线程应该表明它已经完成了.或者,如果您的主线程不会执行任何其他操作,为什么不添加正常的C#事件,以便每当更改变量时,都会引发事件并采取相应的操作?
| 归档时间: |
|
| 查看次数: |
4345 次 |
| 最近记录: |