我正在尝试创建一个Sketchup脚本,通过尽可能保存来模拟OS X的本机自动保存功能。但是,我似乎无法运行脚本而不会导致Sketchup停止响应(出于显而易见的原因)。如何让它在后台运行,例如在另一个线程?
loop {
sleep(1)
model = Sketchup.active_model
model.save()
}
答案 0 :(得分:1)
sleep
是一个阻塞函数 - 没有其他任何东西可以运行,因为Ruby解释器在主线程中运行。 SketchUp API只能从主线程中调用。
相反,您可以使用计时器:
interval = 60 * 5 # 5 minutes
timer_id = UI.start_timer(interval, true) {
model = Sketchup.active_model
model.save() if model # OSX might have no models open
}
如果你想停止计时器:
UI.stop_timer(timer_id)