多线程操作控件稳定用法讲解

易语言 2020-03-09 16:03:11

多线程操作控件稳定用法讲解

.判断循环首 (集_程序关闭 = 假)
集_控件读写锁.写锁定 ()
局_表数 = 超级列表框1.取表项数 () ' 删除前要保证表的数量不再变化,所有这里开始锁住
.如果真 (局_表数 > 0)
超级列表框1.删除表项 (局_表数 - 1) ' 表的索引从0开始,表数据个数是从1开始 所以这里要减1 肯定不能从1开始往后数,要倒着数,考虑一下堆栈
.如果真结束
集_控件读写锁.解锁 ()
.判断循环尾 ()

开源时代 我就开一次源吧,再次说一下,易语言写东西很稳定,如果出现不稳定请不要怪语言不行,其实易语言只是翻译了c 并不是自己开发的语言,难道你说c语言不稳定吗?出问题肯定是哪里用错了,所有大家开发程序的时候尽量不要使用模块,哪怕要用功能可以把模块里的代码写到自己的程序里,这样便于调试找bug。

很多人说发的帖没意义,其实是没有看懂这个demo真正的意图,我表达的是,全局或者程序集静态变量不要直接去调用使用,可以做一个函数,通过函数去调用。

因为有读写锁的存在,可以保证变量不会被同时几个步时操作而崩溃,如果出现闪退绝大多数是因为全局 静态 变量被几个同时使用了 ,也就是 一个线程正在对某个全局变量进行写,恰巧另一个线程也同时对他写,或者一个线程正在对变量写,另一个线程正在对变量读,如果程序提示已经停止工作。