找回密码
 点一下
查看: 1277|回复: 9

怎么给触发器传递局部变量参数

[复制链接]
发表于 2015-2-11 20:44:39 | 显示全部楼层 |阅读模式
怎么给触发器传递局部变量参数?
注意不能是全局变量,不然在触发器执行过程中,全局变量被改变,就发生混乱,
 楼主| 发表于 2015-2-11 20:49:35 | 显示全部楼层
一个可行的方法是,在触发器第一个动作就保存全局变量参数到局部变量,应该可以吧,

点评

问题是如果参数是个大的结构体,在每个成员都赋值完成前,全局变量发生改变,还是会引起混乱,  详情 回复 发表于 2015-2-11 20:54
回复

使用道具 举报

 楼主| 发表于 2015-2-11 20:54:24 | 显示全部楼层
2012pasttime 发表于 2015-2-11 20:49
一个可行的方法是,在触发器第一个动作就保存全局变量参数到局部变量,应该可以吧,

问题是如果参数是个大的结构体,在每个成员都赋值完成前,全局变量发生改变,还是会引起混乱,
回复

使用道具 举报

 楼主| 发表于 2015-2-11 21:06:39 | 显示全部楼层
在 "动作" 里找到临界区了,
回复

使用道具 举报

 楼主| 发表于 2015-2-11 22:07:58 | 显示全部楼层
按照真进入临界区,和按照假进入临界区有什么区别?
回复

使用道具 举报

发表于 2015-2-11 23:50:15 | 显示全部楼层
不要创建触发器 创建函数 函数可以接收参数
回复

使用道具 举报

发表于 2015-2-12 22:32:23 | 显示全部楼层
1.如果必须使用触发器,可以在局部变量创建时就直接用全局变量赋值,这样就能用全局变量传参了。
2.如果能不使用触发器,则不要使用触发器,因为这个本来就不是个好方法。比较合理的思路就是使用自定义函数或动作。如果你需要在调用的内容里使用等待,而主体触发器又不允许等待,所以希望使用触发器不要等待这个功能的话,那么使用自定函数或动作,勾选上“创建线程”选项,也能达到同样的目的。
回复

使用道具 举报

发表于 2015-2-13 10:29:16 | 显示全部楼层
本质上说,创建线程也是制造一个新的触发器然后用全局变量传参过去。只不过这个设置起来比较简单,GUI自动帮你完成了。

点评

原来是这样,以前只是这么用,还真不了解内部运作方式。  发表于 2015-2-13 13:39
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 21:38 , Processed in 0.058248 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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