设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1217|回复: 3
打印 上一主题 下一主题

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

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
帖子
643
跳转到指定楼层
1
发表于 2009-7-6 17:45:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

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

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
2
发表于 2009-7-6 18:01:24 | 只看该作者
@time = 0

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

仅供参考
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
帖子
643
3
 楼主| 发表于 2009-7-6 18:17:27 | 只看该作者
还是不行,我是要在那个方法“正在执行中”的时候中断它。
LS的是在@time >= 5的时候不执行该方法。
最近在研究XAS
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
4
发表于 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 秒的时候中断了执行那个函数的线程~
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-20 19:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表