当表单被加载时myMethod()
被调用,然后它执行一些语句。在某些时候,当它到达 if 语句时,它应该停止并等待用户按下某个按钮,然后它将根据用户的操作继续执行。我使用了Thread.Sleep()
ManualResetEvent obj 的WaitOne()
方法,但它们似乎冻结了整个过程,直到时间到期,什么都做不了。我认为 KeyEventHandler in 应该在后台运行,所以它永远不会费劲......无论如何我该怎么做?
public partial class Form1 : Form
{
bool pressed = false;
public Form1()
{
InitializeComponent();
this.KeyPreview = true;
this.KeyDown +=new KeyEventHandler(Form1_KeyDown);
}
void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.E)
{
pressed = true;
}
}
void myMethod()
{
while (someBool)
{
//do something
if (pressed)
//do this
else
//do that
}
}
private void Form1_Load(object sender, EventArgs e)
{
myMethod();
}
}