中另一个线程的主线程。
期间抛出的异常。
详细信息:
主线程使用队列(声音、电机控制、视觉动画)通过不同的线程编排一个动画机器人。
通信线程通过USB监听Arduino (监听移动确认)。Arduino通过USB连接发送消息来处理按下硬件中断的按钮。
当在通信线程上接收到硬件中断消息时,我需要能够中断主线程的动画程序,从本质上将硬件中断转换为软件级。
完美的行为将是在主线程上触发的异常之一,在机器人可能造成任何伤害之前阻止它。
我尝试过许多“最佳实践”方法,如事件处理,但这留下了一个危险的时期,机器人在处理硬件中断事件之前完成其当前的运动。我还考虑了信号,尽管使用这些来进行线程通信并不理想。
有什么建议吗?
发布于 2021-04-04 14:39:35
对于那些稍后可能会发现这个问题的人,我从所有需要很长时间才能完成的操作(任何文本到声音、动画)中释放我的主线程,从而避免了这个问题。这样,主线程命令命令,等待它的完成,在等待的时候读取USB消息。如果接收到硬件中断消息,则会杀死所有线程并进入紧急停止模式。
https://stackoverflow.com/questions/66937366
复制相似问题