使用事件api线程同步来实现,可按照顺序来依次开启线程,不会出现双线程
帮助例子:
空间 事件测试A //新建一个项目,项目名 事件测试A
线程句柄1=0,线程句柄2=0 //线程句柄
句柄=0 //一般定义成全局句柄
次数=0//次数
功能 A() //定义线程A
循环(真)
线程.等待(句柄,-1)//无限等待这个事件,进入后事件状态为占用
次数=次数+1
辅助.消息框("程序A的线程A "&次数)
线程.设置事件(句柄)//事件处理完成,设置事件为可用状态
辅助.等待(2000)
循环结束
返回 真
功能结束
功能 B() //定义线程B
循环(真)
线程.等待(句柄,-1)//无限等待这个事件,进入后事件状态为占用
次数=次数+1
辅助.消息框("程序A的线程B "&次数)
线程.设置事件(句柄)//事件处理完成,设置事件为可用状态
辅助.等待(2000)
循环结束
返回 真
功能结束
功能 开始_点击() 次数=0
句柄=线程.创建事件(假,真,"新的事件") //创建一个带名字的事件,自动设置事件状态,初始事件可用
线程句柄1=线程.开启("事件测试A.A","")//开启这两个线程以后我们会看到线程会按顺序执行,跟临界区效果类似,不会发生抢占的情况
线程句柄2=线程.开启("事件测试A.B","")
返回 真
//函数返回语句
功能结束
功能 退出_点击()
线程.关闭(线程句柄1) //关闭线程 线程.关闭(线程句柄2) //关闭线程 线程.关闭句柄(句柄) //关闭对象,释放资源
返回 真
功能结束
空间结束
|