最初,我以为,局部的静态变量 类似于 程序集变量。 区别只是 局部变量,仅能给子程序 自己访问
它们同样都具有 方法结束不会销毁的特性
所以,经常我会用静态变量来做一些计数的事情,例如这样:
序号 = 序号 + 1 如果真 (序号 > 取数组成员数 (总任务数组 )) 序号 = 1 返回 (总任务数组 [序号])
因为任务序号 就这一个子程序会使用,所以就没有创建程序集变量,直接用局部变量,又因为不能销毁,所有设置为静态
看起来一点毛病都没有
但是,在某个类中,再遇上多线程,那就大不一样了,例如下面的代码
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | 类数组 | 演示类 | 2 | 计次循环首 (2, i )启动线程 (&子程序1, i, )延时 (100 )计次循环尾 ()计次循环首 (10, i )类数组 [线程 ]. 演示方法 (线程 )延时 (500 )计次循环尾 ()
窗口程序集名 | 保 留 | 保 留 | 备 注 | 演示类 | | | | 变量名 | 类 型 | 数组 | 备 注 | 程_变量 | 整数型 | |
程_变量 = 程_变量 + 1 a = a + 1 调试输出 (格式化文本 (“线程:%d,程序集变量:%d,静态变量:%d”, 线程, 程_变量, a ))
代码执行结果如下:
每条线程中的 程序集变量, 是独立存在的, 但是 静态变量,却类似全局变量一样,多个线程一起共用了
|