我对 Ruby 中的 Thread 有疑问。这是我第一次使用线程,所以也许我省略了一些重要的东西。
我有这个程序:
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 ... add action for”
没有 Thread 的相同代码可以完美运行,但显然会停止屏幕 5 秒。
我的代码有什么问题?