У меня есть консольное приложение, которое предназначено для продолжения работы, пока оно не будет уничтожено.По существу:
<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)
Я не уверен, как это сделать.
Заранее спасибо.