0

我设计了一个代表机械臂的 C++ 应用程序。模拟在 while 循环内运行。我有以下与模拟交互的类主板

class Motherboard
{
public:
void receiveInstruction(double angle);
}

我还有一个在模拟过程中等待键盘指令的事件接收器。我不会复制完整的课程,但这里是有趣的部分(前缀 irr 来自我使用 Irrlicht 3D 引擎的事实):

case irr::KEY_SPACE:
     // Do something
     return true;
case irr::KEY_RETURN:
     std::cin << angle
     motherboard->receiveInstruction(atof(angle))
     return true;

其中 angle 是 char[] 类型,而 atof 将字符串转换为双精度。当我在键盘上输入 RETURN 键时,模拟会冻结,直到我完成输入角度指令。

在我输入指令时如何继续让模拟运行,并在我输入完信息后立即发送指令?线程是不可避免的吗?(我在 Windows 上运行)

此致

文森特

4

1 回答 1

0

是的,看起来是这样,一个单独的线程是不可避免的,或者至少是最优雅的方式。

于 2013-06-11T10:56:39.733 回答