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
不修改的话,可以让函数在一个专门给它分配的线程中运行:
  1. def fn
  2.   sleep 8
  3.   p "fn() 运行了 8 秒"
  4. end

  5. t = Thread.new { fn }

  6. sleep(5)
  7. Thread.kill(t)
复制代码
如此一来 8 秒后本来应该弹出的消息框就不会出现了,因为在主线程运行 5 秒的时候中断了执行那个函数的线程~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1