我有一个程序,它在启动时不断地在 3 个独立的计时器之间切换。
我的应用程序的主线程有一个 while 循环,它不断检查全局变量是否已设置为 true,如果设置为 true,它将停止一个计时器并启动另外两个计时器 - 一个连续,另一个自动停止(如果不是)无论出于何种原因,我都没有命令停止。
这个 while 循环的条件是 (1==1),因此它会永远运行。
在任务管理器 (XP) 中,我看到我的程序在或多或少空闲的系统上使用了 50% 的 cpu。
有没有办法通过降低 while 循环的速度或其他方法来减少这个数字?
Thanks.
有没有办法通过降低 while 循环的速度或其他方法来减少这个数字?
只需停止执行繁忙的循环即可。有更好的方法来协调线程之间的事件。考虑使用Monitor.Wait
/Pulse
, or AutoResetEvent
/ ManualResetEvent
。基本上,设置全局变量的线程应该发出信号表明它已完成。或者,如果你的主线程不执行anything否则,为什么不添加一个普通的 C# 事件,以便每当变量更改时,都会引发该事件并采取适当的操作?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)