次のような状況があります
kl.KeyDown += CheckPwd;
while(flag)
System.Windows.Forms.Application.DoEvents();
//continue other code based on "Success"
//This will be called for every keydown
void CheckPwd(object sender, KeyEventArgs e)
{
//some code here
if(....)
{
flag = true;
Success = true;
kl.KeyDown -= CheckPwd;
}
else
{
flag = true;
Success = false;
kl.KeyDown -= CheckPwd;
}
}
ここでは、使用を避けたいと思いApplication.DoEvents()
ます。を使用してみManualResetEvent
ましたが、呼び出すWaitOne()
と現在のスレッドがブロックされており、これCheckPwd
が原因で起動していません。どうすればこれを達成できますか?