我正在开发一个监视/控制软件,基本上,它读取输入(通过网络模块)并在处理它们后生成事件。
虽然输入可以取决于通信速度,并且可以在多线程中运行,但处理基本上是一个连续循环,基本上:
while (true)
{
readInputs();
process();
}
这似乎很简单,但正如您所想象的那样,cpu 将达到 100%。如果你想让其他循环运行,主要是为了定时事件。因此,虽然进程可以在最后休眠,但定时事件不能。
我的问题是:收集和处理输入的最佳方式是什么,而不让应用程序占用完整的 CPU 周期?
更新 1:该应用程序是多线程的并且具有用户界面。计时器用于更新用户界面(来自共享内存 - 已处理的内容和输入状态)。While 循环用于输入读取和处理。