使用多个'while()'循环不好的做法?

ant*_*nti 1 c# c++ cpu-usage while-loop

我正在编写两个相互协作的应用程序.一个是c ++,另一个是C#.由于涉及流数据,我在多个地方使用代码,例如:

while (true)
{
 //copy streamed data to other places

}
Run Code Online (Sandbox Code Playgroud)

我注意到这些程序使用了大量的cpu,并且响应缓慢.使用这种循环是不好的编程?我应该添加一个:

Sleep(5);
Run Code Online (Sandbox Code Playgroud)

在每一个?这有助于cpu的使用吗?

谢谢!

Peu*_*ski 5

通常,Thread.Sleep()在代码中使用也会冻结线程,所以如果你担心的是响应性,你就不应该使用它.您应该考虑将流方法移出主(UI)线程

此外,你提到它是一些流媒体流程,所以最好的做法不会是这样的

while(!stream.EndOfStream)
{
//streaming
}
Run Code Online (Sandbox Code Playgroud)

而是使用一些DataReceived事件(如果可用)