У меня проблема с Thread в Ruby.Это первый раз, когда я использую Threads, поэтому, возможно, я пропущу что-то важное.
У меня есть такая процедура:
def define_action(field)
false if field.nil? || field.empty?
puts field.empty? <---- ONLY FOR DEBUG
case field['special']
when 'signpost'
typewriter_animation(field['message'])
else
typewriter_animation("TO DO ... add action for #{field['special']}")
end
end
typewriter_animation
очистить поле, поместить текст и ждать 5 секунд, прежде чемСнова очистите поле.
Я использую define_action
в потоке
@timer = Thread.new do
@engine.define_action(@map.next_field_coordinates)
end
Когда field
равен empty
(я вижу true
в приглашении), я ничего кроме как результат,но процедура продолжается и выведите на экран «TO DO ... добавить действие»
Тот же код без Thread работает отлично, но, очевидно, остановит экран на 5 секунд.
Что не так в моемкод