查看: 1425|回复: 3

[已经解决] 如何中断某个执行中的方法

  [复制链接]
梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
回帖
557
发表于 2009-7-6 17:45:37 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 赛露休斯 于 2009-7-6 20:36 编辑

如何中断某个执行中的方法?
要求不修改那个方法直接中断
例如调用某方法执行时间共10秒,在不修改那方法的前提下,我要在第5秒的时候中断该方法,该怎么做?
最近在研究XAS

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
回帖
3622
发表于 2009-7-6 18:01:24 | 显示全部楼层
@time = 0

def update
@time +=1
if @time < 5
xx
end
end

仅供参考
回复

使用道具 举报

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
回帖
557
 楼主| 发表于 2009-7-6 18:17:27 | 显示全部楼层
还是不行,我是要在那个方法“正在执行中”的时候中断它。
LS的是在@time >= 5的时候不执行该方法。
最近在研究XAS
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-7-6 18:17:56 | 显示全部楼层
不修改的话,可以让函数在一个专门给它分配的线程中运行:
  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 秒的时候中断了执行那个函数的线程~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部