関数のwhileループを停止するのに問題がありKeyListener
ます。10秒ごとに、Timer
関数はであると宣言Active
しますfalse
。しかし、それでも関数のwhile
ループは実行され続けます。KeyListener
ループが実行され続ける理由がわかりません。サイクルごとに、真であるかどうかをテストする必要Active
があります。真でない場合は(10秒後にオフにする必要があるため)、ループは実行されないはずです。しかし、そうです。
void KeyListener(bool Active)
{
cout << Active << endl; //debug
while (Active==true){
cout << "loop still running." << endl; //debug
Sleep(100);
for (int i=8;i<=190;i++){
if (GetAsyncKeyState(i) == -32767){
KeyWrite(i); // (turns the numbers into characters)
}
}
}
}
void Timer(void* pParams){
while (true){
Sleep(10000);
KeyListener(false); // Active = false
cout << "KeyListener(false)" << endl; // debug
}
}
int main()
{
_beginthread( Timer, 0, NULL );
KeyListener(true);
return 0;
}