我的代码包含以下内容:
{
var comeback = Cursor.Position;
code goes here
code goes here
code goes here
code goes here
code goes here
code goes here
Cursor.Position = restart;
}
现在,我希望这个循环不断循环,直到我调用按键停止为止。
我不能做什么我写这个循环的代码,或者我应该采用不同的方式来解决这个问题。
提前致谢
答案 0 :(得分:6)
while(!Console.KeyAvailable)
{
//do work
}
答案 1 :(得分:1)
因为OP感谢我的第一个答案,我将把它作为下面的参考。
考虑使用后台线程来执行循环。然后通过双击KeyPressed事件在项目中添加一个键监听器(如果你有visual studio,打开属性选项卡并检查事件)。你会得到这样的东西:
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;
}
...
}
答案 2 :(得分:-2)
有一个布尔变量。
像 bool flag = true; 而(标志) { 你的代码; }
按下该键时,将标志更改为false。