Моя попытка создать простой анимированный оболочки спиннера парень ...выход резьбы при печати/путы называется внутренней резьбой
STDOUT.sync
# spinner stuff
spinner_running = false
chars = ['|', '/', '-', '\\']
@spinner = Thread.new do
loop do
unless spinner_running
Thread.stop
print "\b"
end
print chars[0]
sleep(1)
print "\b"
chars.push chars.shift
end
end
def start_spinner
spinner_running = true
@spinner.wakeup
end
def stop_spinner
spinner_running = false
end
print ".......X"
start_spinner()
sleep(5)
stop_spinner()
Просто пытаюсь создать простой счетчик, и да, я знаю, что есть драгоценный камень для этого ...
Почему бы мне не увидеть прогресс счетчика, пока он выполняется в этом коде?
Выходной ток: ruby spinner.rb
.......X< new prompt (no new line) >
Да, это в основе того, что было не так, были некоторые ошибки в области охвата, которые скрывались от потока, который терпел молча ... любой способ обнаружить эти ошибки в потоке? – jondavidjohn
Я не думаю, что нить не удалась - она сделала именно то, что вы сказали ей! – Russell
Хмм, я не могу придумать способ, чтобы поток обнаружил, что есть ошибка, но на плюсе сторона этой конкретной ошибки никогда не срабатывает случайно при тестировании, а затем не работает, что я вижу. – Russell