当用户点击'x'+ Enter时,我正试图找到一种终止循环的方法.我希望循环只在后台继续运行,直到用户取消它.
这些方面的东西:
while gets.chomp != 'x'
puts 'looping...'
sleep 1
end
Run Code Online (Sandbox Code Playgroud)
我是编程的初学者,并且已经广泛搜索了如何做到这一点,所以任何帮助都将深表感谢.
你必须使用线程:
Thread.new do
while line = STDIN.gets
break if line.chomp == 'x'
end
exit
end
# whatever you want to do in the background
# (or rather in the foreground, actually)
loop do
puts "foo"
sleep 1
end
Run Code Online (Sandbox Code Playgroud)
问题是STDIN.gets块,所以如果不使用仅检查输入的后台线程并行化程序,则不能同时执行其他操作.