元の質問に対する再分類。私はルビーで実行されるループが必要で、私はコンソールに(おそらく取得を使用して)停止し、ループが停止するcommmandに入ることができます。Rubyループが発行されるまで
乾杯 マーティン
元の質問に対する再分類。私はルビーで実行されるループが必要で、私はコンソールに(おそらく取得を使用して)停止し、ループが停止するcommmandに入ることができます。Rubyループが発行されるまで
乾杯 マーティン
私はあなたがこのようなものを使用できると思います。他の人がこの同じ問題を抱えている場合は、彼らができるようにするには、さらにいくつかのタグ(例えばuntil
またはloop
)を追加する必要があります
# Initialize the input queue. This is where the user-created info will be stored
$QUEUE = []
def pending
old = $QUEUE
$QUEUE = []
old
end
t = Thread.new do
loop do
# Ask the user for something
print "Enter info here: "
# Read information in
$QUEUE << gets.chomp
end
end
# Example code utilizing this; you can do whatever you like with the queue
2.times do
sleep 5
# Print the list out
puts "\nYou entered: \n" << pending.join("\n")
end
'Thread.main.exit'の代わりに' exit'を使うこともできます。 –
これは、起動されたスレッドからただ終了します。 – Jwosty
['Kernel#exit'](http://apidock.com/ruby/Kernel/exit)と[' Thread.exit']を混同していると思います(http://apidock.com/ruby/Thread/exit/クラス)ここに。 'exit'は完全なスクリプトを終了させますが、これは適切と思われます。変数を設定せず、メインループの中で 't.stop? 'をチェックするだけで、第3の例のロジックを追加することができます。 –
をこの質問を見つける。 – Jwosty
質問にはより多くのタグは含まれていません。純粋なRuby以上のものは何もありません。 'loop'のようなタグは避けるべきです。 –
Mm、良い点。それらは私の頭の中に入ったばかりの最初のものでした。私は本当に実際のタグを提供していませんでした。 – Jwosty