C ++:自动中断getch()调用

时间:2015-03-09 21:13:53

标签: c++ multithreading input io

问题

我的程序有多个线程,其中有两个当前重要的线程; "键盘" thread是由while循环包裹的getch()调用," Conductor"线程为了自动化目的而在时间表上模仿用户的输入。我需要为导体找到一种方法来中断键盘线程而无需用户干预。

解决方案

我有几个策略,我预计答案可能采取的形式。

答:定时getch()来电

我想知道是否有可能在一段时间之后让getch()调用超时,并且在没有用户输入的情况下继续执行程序。这将允许循环检查来自用户的输入一段时间,然后检查来自Conductor的输入(否则将无法与Keyboard线程通信,因为getch()调用仍然是运行)。如果用户碰巧在键盘线程没有通过getch()收听时碰到键盘,这可能会在程序中留下潜在的错误,但这将是一个解决方案。

B:将数据插入输入流

导体可能会使用getch()使用的输入流将信息发送到键盘线程。我对getch()和输入 - 输出的具体细节知之甚少,但我认为导体必须有一些方法来模仿用户的键盘并发送一个可以拾取的键。按getch()。如果可能的话,这将是首选的解决方案(没有可预见的错误,并且会简化导体的设计)。

非常感谢任何帮助,谢谢!

0 个答案:

没有答案