SetEvent HANDLE m_hEvent; m_hEvent=CreateEvent(...) DWORD dwTimeout = 10000; if(WaitForSingleObject(m_hEvent,dwTimeout)==WAIT_OBJECT_0) { ResetEvent(m_hEvent); }
是死在这一句了吗? GetRR0Status( hDevice, &RR0); //读取寄存器的值 这种操作应该不能死的 你判断下hDevice的值是否有效,调试看看,或者像下面这样 if (hDevice) GetRR0Status( hDevice, &RR0);
可能你读寄存器的值太频繁了,你先改成下面这样试试 while(RR0.XDRV == 1 && RR0.YDRV == 1) { Sleep(20); GetRR0Status( hDevice, &RR0); //读取寄存器的值 } 其实你这个问题用多线程解决比较好,不过看你这个代码可能要改些结构
while(RR0.XDRV == 1 && RR0.YDRV == 1) { Sleep(20); GetRR0Status( hDevice, &RR0); //读取寄存器的值 }
15,471
社区成员
49,182
社区内容
加载中
试试用AI创作助手写篇文章吧