, так как OP поблагодарил меня за первый ответ, я оставлю это в качестве ссылки ниже ..
рассмотрите возможность создания фонового потока, который выполняет цикл.Затем добавьте ключевой слушатель в свой проект (если у вас есть visual studio, откройте вкладку свойств и проверьте события), дважды щелкнув событие KeyPressed.Вы получите что-то вроде этого:
private bool keyPressed;
public MyClass() {
keyPressed = false;
Thread thread = new Thread(myLoop);
thread.Start();
}
private void myLoop() {
while (!keyPressed) {
// do work
}
}
private void MyClass_KeyPress(object sender, KeyPressEventArgs e) {
keyPressed = true;
}
}
Подумайте о том, чтобы иметь поток, который прослушивает нажатие клавиши, а затем установите флаг в вашей программе, который вы проверяете в цикле.
например Не проверено
bool keyPressed = false;
...
void KeyPressed(){
Console.ReadKey();
keyPressed = true;
}
...
Thread t = new Thread(KeyPressed);
t.Start();
...
while (!keyPressed){
// your loop goes here
// or you can check the value of keyPressed while you're in your loop
if (keyPressed){
break;
}
...
}