我有一个控制台应用程序,它只是一直运行直到它被杀死。基本上:
<setupCode>
Do
<doProcessing>
Thread.Sleep(<interval>)
Loop
显然,这将一直持续到用户杀死它为止。
我想要做的是用等待条件替换Thread.Sleep
调用等待两个单独事件中的任何一个...类似
WaitFor(<intervalPasses> Or <KeyPress>)
这样应用程序基本上只会在后台睡觉,直到下一个间隔过去,但这样用户可以通过按键“唤醒”。我还希望能够获得有关按键的信息,以便例如如果他们按Enter键我可以在不等待计时器的情况下开始下一次迭代,如果他们按下Escape我将完全退出循环,如果他们按下其他任何东西,我会继续等待计时器或其中一个键。 / p>
(waiting for a timer)
或(waiting for a keypress)
都很容易
等待(a timer OR a keypress)
我不知道该怎么做。
提前致谢。
答案 0 :(得分:1)
这是Windows窗体和WPF的工作方式。我强烈建议您使用其中一个来实现此任务。使用Timer,实现其Tick事件。并实现表单的KeyDown事件。类似的东西,你的问题太笼统而不具体。