我终于解决了这个问题。我让我的机器人代码与按钮效果一起在事件分发线程中运行。这意味着在我的机器人完成执行之前,所有按钮都无法响应我的机器人的动作。
我不完全确定为什么在这种情况下会阻止我的机器人正常工作。我发现,如果删除了ctrl-F4命令,机器人将对enter命令做出响应,但是似乎在机器人返回时,这两个命令都应该已经排队并正确执行了。我认为排队的事件数没有限制,或者我以某种方式最终在两个事件之间进行了数据争夺。无论哪种方式,通过将机器人移动到单独的线程中,我都能获得所需的行为。
顺便说一句,我无法创建SSCCE的原因是因为我试图将机器人合并到按钮中,并且试图让机器人一次执行多个事件。但我没有尝试按下按钮来生成执行多个事件的机器人。要重现此问题,我最终会得到与原始代码一样复杂的代码。



