Tag: 非阻塞

在Ruby中检测没有getc / get的按键(非阻塞)

我有一个简单的任务,需要等待文件系统上的某些东西改变(它本质上是原型的编译器)。 因此,在检查更改的文件后,我有一个简单的无限循环,睡眠时间为5秒。 loop do # if files changed # process files # and puts result sleep 5 end 而不是Ctrl+C致敬,我宁愿能够测试并查看是否按下了一个键,而没有阻止循环。 基本上我只需要一种方法来判断是否有传入的按键,然后一种方法来获取它们直到满足Q,然后退出程序。 我想要的是: def wait_for_Q key_is_pressed && get_ch == ‘Q’ end loop do # if files changed # process files # and puts result wait_for_Q or sleep 5 end 或者,这是Ruby不做的事情(好)?