c++thread设置全局监视键盘事件的未响应问题

int RobotMonitor(int ID)
{
printf("n线程已启动\");

while (1)
{
if (GetAsyncKeyState(VK_ESCAPE) && 0x8000)
{
int sysIO = 10240;//外部暂停
int res = Send_SysIO(sysIO, ID);
printf("按下ESC外部暂停\n");
}
if (GetAsyncKeyState(VK_CONTROL) && 0x8000)
{
int errorCode = MovePause(ID);
printf("按下CTRL运动指令已暂停\n");
}
return 0;
}
}
这段函数在main中为以下:
/*xxxxxxxxxxxxxx线程1:以下为后台detach监控程序xxxxxxxxxxxxxxxx*/
std::thread T1(RobotMonitor,ID);
printf("监视线程ID为%i\n", T1.get_id());
T1.detach();

但是我在程序运行过程中,按esc和ctrl 并没有printf(按下ctrl外部暂停),也无响应,但是printf了“线程已启动”证明已经thread了,为什么按响应按键没有printf响应的语句呢? 是因为线程控制权问题? 线程没有权限在控制台面板输出printf,但是他实际上捕获了键盘操作?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问