我正在开发一个监控/控制软件,它基本上读取输入(通过网络模块),并在处理它们后生成事件。C#或其他:while循环来更新输入和过程?
虽然输入可以依赖于通信速度,并且可以在多线程来运行,处理基本上是一个连续的循环,基本上是:
while (true)
{
readInputs();
process();
}
这似乎是非常简单的,但是,你可以想像,CPU将达到100%。 如果你想有其他的循环运行,主要是为了定时事件。 因此,虽然进程最后可能有睡眠,但定时事件不能。
我的问题是:什么是最好的方式来收集和处理输入,而不让应用程序吃完整的cpu周期?
更新1: 该应用程序是多线程并具有用户界面。 定时器应用于更新用户界面(从共享内存 - 处理的东西和输入状态)。 While循环用于输入读取和处理。
您如何阅读您的输入? 'Console.ReadXXX'方法不会粉碎CPU .. –
@SimonWhitehead“读取输入(通过网络模块)” - >不是控制台。 –
傻我。我不知道今晚的英语非常好,不幸的是:( –