oli*_*dev 7 .net c# parallel-processing multithreading cpu-usage
我在C#中实现了一个非常基本的线程:
private Thread listenThread;
public void startParser()
{
this.listenThread = new Thread(new ThreadStart(checkingData));
this.listenThread.IsBackground = true;
this.listenThread.Start();
}
private void checkingData()
{
while (true)
{
}
Run Code Online (Sandbox Code Playgroud)
}
然后我立即获得100%的CPU.我想检查传感器数据是否在while(true)循环内读取.为什么会这样?
提前致谢.
Ale*_*Aza 15
while (true) 是什么杀死你的CPU.
您可以添加Thread.Sleep(X)给您,同时在再次检查之前为CPU提供一些休息.
而且,看起来你真的需要一个Timer.
请查看其中一个Timer类http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx.
使用尽可能高的拉动间隔的定时器,1秒,半秒.
您需要在CPU使用率和检查之间可以承受的最大延迟之间进行权衡.