В VB.NET дождитесь таймера или нажатия клавиши - PullRequest
0 голосов
/ 27 августа 2010

У меня есть консольное приложение, которое предназначено для продолжения работы, пока оно не будет уничтожено.По существу:

<setupCode> 

Do 
    <doProcessing>
    Thread.Sleep(<interval>)
Loop

По существу это будет продолжаться, пока пользователь, очевидно, не убьет его.

Я хотел бы заменить вызов Thread.Sleep условием ожидания на одно из двух отдельных событий ... что-то вроде

WaitFor(<intervalPasses> Or <KeyPress>)

, чтобыприложение будет просто спать в фоновом режиме до следующего интервала, но пользователь сможет "разбудить его" нажатием клавиши.Я также хочу иметь возможность получить информацию о нажатии клавиш, чтобы, например, если они нажали Enter, я мог просто запустить следующую итерацию, не дожидаясь таймера, и если они нажали Escape, я бы вообще вышел из цикла, и если они нажмут что-нибудь ещеЯ бы продолжил ждать либо таймера, либо одной из этих двух клавиш.

Либо (waiting for a timer) ИЛИ (waiting for a keypress) будет легко.
Ожидание либо (a timer OR a keypress) Я не уверен, как это сделать.

Заранее спасибо.

1 Ответ

1 голос
/ 27 августа 2010

Так работают Windows Forms и WPF.Я настоятельно рекомендую вам использовать один из них для реализации этой задачи.Используйте таймер, реализуйте его событие Tick.И реализовать событие KeyDown формы.Как-то так, ваш вопрос слишком общий, чтобы быть более конкретным.

...