【发布时间】:2016-05-16 14:45:48
【问题描述】:
我正在编写两个相互配合的应用程序。一个是c++,另一个是C#。由于涉及流式数据,我在多个地方使用代码,例如:
while (true)
{
//copy streamed data to other places
}
我注意到这些程序使用大量 cpu,并且响应速度变慢。使用这种循环是不好的编程吗?我应该添加一个:
Sleep(5);
在每个?这对 CPU 使用有帮助吗?
谢谢!
【问题讨论】:
-
你的 cpu 有 100% 的使用率。用起来还不错。
-
@anti 这很好用,你还会看到一些人经常使用等效的
for( ; ;) -
while 循环不一定是不好的做法.. 你在其中放入的内容可以使它们如此
-
如果有工作要做,就去做。如果您正在等待接收工作,请不要忙着等待。 (最好也不要轮询,使用等待新数据到来唤醒的函数)
-
您应该研究异步,您可以将这些循环卸载到单独的线程中以避免响应问题。
标签: c# c++ while-loop cpu-usage