Project1
标题:
如何中断某个执行中的方法
[打印本页]
作者:
赛露休斯
时间:
2009-7-6 17:45
标题:
如何中断某个执行中的方法
本帖最后由 赛露休斯 于 2009-7-6 20:36 编辑
如何中断某个执行中的方法?
要求不修改那个方法直接中断
例如调用某方法执行时间共10秒,在不修改那方法的前提下,我要在第5秒的时候中断该方法,该怎么做?
作者:
ONEWateR
时间:
2009-7-6 18:01
@time = 0
def update
@time +=1
if @time < 5
xx
end
end
仅供参考
作者:
赛露休斯
时间:
2009-7-6 18:17
还是不行,我是要在那个方法“正在执行中”的时候中断它。
LS的是在@time >= 5的时候不执行该方法。
作者:
紫苏
时间:
2009-7-6 18:17
不修改的话,可以让函数在一个专门给它分配的线程中运行:
def fn
sleep 8
p "fn() 运行了 8 秒"
end
t = Thread.new { fn }
sleep(5)
Thread.kill(t)
复制代码
如此一来 8 秒后本来应该弹出的消息框就不会出现了,因为在主线程运行 5 秒的时候中断了执行那个函数的线程~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1