在VB.NET中,等待Timer或KeyPress

时间:2010-08-26 20:23:39

标签: vb.net loops timer keypress semaphore

我有一个控制台应用程序,它只是一直运行直到它被杀死。基本上:

<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)我不知道该怎么做。

提前致谢。

1 个答案:

答案 0 :(得分:1)

这是Windows窗体和WPF的工作方式。我强烈建议您使用其中一个来实现此任务。使用Timer,实现其Tick事件。并实现表单的KeyDown事件。类似的东西,你的问题太笼统而不具体。