找回密码
 点一下
查看: 1591|回复: 15

对于执行时间过长触发不执行

[复制链接]
发表于 2011-6-21 01:03:00 | 显示全部楼层 |阅读模式
例如我要初始化一个100*100的数组,触发器提示时间过长不执行,就算慢慢执行也好啊,我等,但是它不执行,有什么办法?难道用计时器先初始化50*50个分四次?这太麻烦了吧。。。
发表于 2011-6-21 01:22:06 | 显示全部楼层
相关的资料可以看这个帖子
http://bbs.islga.org/read-htm-tid-44239.html

其实处理方法和war3是一样的,找准差不多一个位置,使用wait将触发挂起,然后就会继续执行了。
回复

使用道具 举报

 楼主| 发表于 2011-6-21 01:43:36 | 显示全部楼层
晕刚好找到法子,就是用wait+取模就可以控制了。。。。
回复

使用道具 举报

发表于 2011-6-21 01:50:37 | 显示全部楼层
呵呵,那就好。
回复

使用道具 举报

 楼主| 发表于 2011-6-21 07:08:07 | 显示全部楼层
恩,等待最短时间是0.0625如果每次都等待就要等很久了,所以通过取模例如每100次等待一次。。。
回复

使用道具 举报

发表于 2011-6-21 08:04:48 | 显示全部楼层
war3用wait无效吧……
回复

使用道具 举报

发表于 2011-6-21 08:46:50 | 显示全部楼层
war3用wait无效?~~没想到jass区路人说出这样的话来呢~~
回复

使用道具 举报

发表于 2011-6-21 09:17:09 | 显示全部楼层
引用第4楼frozenleave于2011-06-21 07:08发表的  :
恩,等待最短时间是0.0625如果每次都等待就要等很久了,所以通过取模例如每100次等待一次。。。

我记得wait(0)还能用吧。。。貌似前个月还用过。。。
回复

使用道具 举报

发表于 2011-6-21 09:37:35 | 显示全部楼层
wait等0秒之类的,应该不会真的是0吧,要嘛是一个周期,要嘛是半个周期。

不过每100wait一次太频繁了,你可以看一下你的初始化是在哪里终止的,然后再稍微小一点的尺寸下wait就可以了。
回复

使用道具 举报

发表于 2011-6-21 09:38:23 | 显示全部楼层
wait 0是半个周期。
回复

使用道具 举报

发表于 2011-6-21 09:40:17 | 显示全部楼层
引用第6楼麦德三世于2011-06-21 08:46发表的  :
war3用wait无效?~~没想到jass区路人说出这样的话来呢~~
记错了么……我当时为啥用了0秒timer呢?记得当时应该测试过……
回复

使用道具 举报

发表于 2011-6-21 09:43:43 | 显示全部楼层
你用timer的话就根本不是这个thread了。
回复

使用道具 举报

发表于 2011-6-21 09:53:01 | 显示全部楼层

回 11楼(麦德三世) 的帖子

0秒wait也可以么,记得自己做过测试来着……当时应该只测试了0秒的
回复

使用道具 举报

发表于 2011-6-21 09:53:51 | 显示全部楼层
0秒wait不能打断支持上限的计数吧……
当时似乎是做的这个……
记不清了……
回复

使用道具 举报

发表于 2011-6-21 09:56:51 | 显示全部楼层
初始化100*100就过长了啊。。
看来得减少数组数量
回复

使用道具 举报

发表于 2011-6-21 10:02:53 | 显示全部楼层
当年做了wait(0)的测试,如果我没记错的话,它是可以打断线程的,
例如两个相同事件的触发,一同触发事件,因为jass虚拟机是单线程,如果没有wait,那么只有先执行的执行完毕才会执行第二个,wait(0)允许在此处优先执行第二条触发。
好像测试结果是这样……当时没写出来结果忘了

奇怪,为啥测试结果不同?
难道是UI的问题?
原先wait(0)相当于不执行的啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-8-8 07:24 , Processed in 0.063532 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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