TC官方合作论坛

标题: 如何在一个多线材里面传递(区分)变量? [打印本页]

作者: ekeen    时间: 2014-9-13 00:01
标题: 如何在一个多线材里面传递(区分)变量?
例如我同样都去找某一个药品,这个药品设置的是全局变量,如不设置为全局变量,那么如何传导到后面提交药品的子程序里呢?所以我设置的是全局变量
单窗口运行的是没有问题的
现在的问题就是,2个窗口同时运行的话,这个药品的变量就改变了
比如第1个窗口要找的是张三,第2个窗口要找的是李四,第一个窗口找到了张三,准备去交付的时候,第2个窗口要去找李四了,这个时候第一个窗口提交的张三就变成了李四了,脚本自然也就不会运行下去了。
我不知道我这样描述大家能不能看懂,你们是如何解决这个问题的呢???

作者: zsconverse    时间: 2014-9-13 00:08
利用临界区。当线程一进入临界区后,就只能线程一去使用这个变量,而线程二会排队直到线程一退出临界区,才会进去,把张三修改回李四。不知道我的解答你是否看的明白
作者: ekeen    时间: 2014-9-13 00:25
zsconverse 发表于 2014-9-13 00:08
利用临界区。当线程一进入临界区后,就只能线程一去使用这个变量,而线程二会排队直到线程一退出临界区,才 ...

我看的明白,但从未用过临界区。
除此之外还有其他方法吗?比如用数组变量有没有可能实现?
作者: dear    时间: 2014-9-13 00:53
你可以把提交药物这个子程序写好一点,弄个参数用于传递药名,根据不同的药名 做不同的操作.
这种问题 不是什么问题.写多了  自然就能理解 楼主加油吧.
PS:看下TC里的变量作用域描述.有帮助于理解这个问题.
作者: q273814    时间: 2014-9-13 03:24
晕 你这家伙还真用TC来写进销存啊 受不了
作者: ekeen    时间: 2014-9-13 11:26
dear 发表于 2014-9-13 00:53
你可以把提交药物这个子程序写好一点,弄个参数用于传递药名,根据不同的药名 做不同的操作.
这种问题 不是什 ...

今日已用数组方式解决问题
作者: dear    时间: 2014-9-13 15:03
ekeen 发表于 2014-9-13 11:26
今日已用数组方式解决问题

养成良好的变量使用习惯 有助于今后编写更加规范简洁的脚本和内存占用节省.
区分好各个功能 各个变量 有助于脚本的维护更新.
这个是经验.




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1