我正在開發一個監控/控制軟件,它基本上讀取輸入(通過網絡模塊),並在處理它們後生成事件。C#或其他:while循環來更新輸入和過程?
雖然輸入可以依賴於通信速度,並且可以在多線程來運行,處理基本上是一個連續的循環,基本上是:
while (true)
{
readInputs();
process();
}
這似乎是非常簡單的,但是,你可以想像,CPU將達到100%。 如果你想有其他的循環運行,主要是爲了定時事件。 因此,雖然進程最後可能有睡眠,但定時事件不能。
我的問題是:什麼是最好的方式來收集和處理輸入,而不讓應用程序吃完整的cpu週期?
更新1: 該應用程序是多線程並具有用戶界面。 定時器應用於更新用戶界面(從共享內存 - 處理的東西和輸入狀態)。 While循環用於輸入讀取和處理。
您如何閱讀您的輸入? 'Console.ReadXXX'方法不會粉碎CPU .. –
@SimonWhitehead「讀取輸入(通過網絡模塊)」 - >不是控制檯。 –
傻我。我不知道今晚的英語非常好,不幸的是:( –