请教一个多线程变量赋值的问题

m0_37670973 2018-08-21 04:41:33
我在主程序里面定义了三个线程,分别去不同的数据,又定义了三个变量,分别标识这三个线程执行结束。然后定义了一个timer,每100ms检查一次三个变量的值,如果全为true,证明线程的主要逻辑都执行完毕,然后启动两个线程,取一些其他的数据。并且把timer关闭,把三个变量全部设为false。
问题:timer的逻辑执行完毕后,为什么三个变量还是true。为啥没有设成false。
...全文
435 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
再重复一遍,捕获一个值(或者也包括集合)的改变事件,跟线程也直接关系。你之所以纠结线程这个看似高大上的概念,是没有把 .net 基本模式(实际上任何语言都一样,都有浅显抄袭几行代码语句和深入编程模式的区别)学到的问题。
回复
变量存储可以实现为“属性”而赋予程序行为。而值的改变应该采用 INotifyPropertyChanged 等等一系列正规的设计模式。软件的对象之间的通讯、监听应该是规范的和高性能的,不是什么傻傻地滥用轮询方式的.................除了语言之外还要努力学点软件设计知识,免得有些刚学了点 java 的人跑到 .net 论坛来又来捣乱。
回复
滥用线程、timer、轮询........这些都是编程大忌。你应该学习一下比较正规的设计模式和事件驱动基本设计概念。
回复
请采用多线程的委托事件处理。
回复
正怒月神 2018-08-21
你把三个线程使用的各自的变量,
改成
static bool a;
static bool b;
static bool c;
回复
相关推荐
发帖
VB
创建于2007-09-28

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
申请成为版主
帖子事件
创建了帖子
2018-08-21 04:41
社区公告
暂无公告