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,但是他实际上捕获了键盘操作?