我有一个用于抽搐机器人的ruby脚本。它的主要方法是run()来启动它,并退出()以关闭机器人。在线发帖之后,似乎我可以通过以下方式制作一个主题:
TWITCH_BOT = Thread.new{ BOT = TwitchBot.new }
然后我需要加入它以保持活着?
TWITCH_BOT.join()
如何从线程内的TwitchBot执行run()命令,而不是尝试执行run()的线程?
答案 0 :(得分:0)
虽然可能有一篇关于安全异步代码的论文,如果它是一个简单的机器人,为什么不写这样的代码呢?
class TwitchBot
...
def run(&code_block)
@thread = Thread.start &code_block
end
...
def quit
@thread.exit unless @thread.nil?
end
...
end
编辑:或者你正在使用其他人写的抽搐机器人?在这种情况下,也许可以编写一个包含上述内容的包装器。