【发布时间】:2010-10-31 02:39:32
【问题描述】:
我有一个简单的任务,需要等待文件系统发生变化(它本质上是一个原型编译器)。所以我有一个简单的无限循环,在检查更改的文件后休眠 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 不擅长的(很好)吗?
【问题讨论】:
标签: ruby input nonblocking