フォームがロードされたときにmyMethod()
呼び出され、いくつかのステートメントを実行します。if ステートメントに到達した時点で停止し、ユーザーが何らかのボタンを押すのを待ってから、ユーザーの操作に従って実行を継続します。私はThread.Sleep()
ManualResetEvent objのWaitOne()
メソッドを使用しましたが、プロセス全体がフリーズしているように見えますが、期限が切れるまで何もできません。KeyEventHandler はバックグラウンドで実行する必要があると思います。
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();
}
}