大漠多线程模板改乐玩模板/每个窗口2个对象

易语言 2020-03-07 17:21:12

大漠多线程模板改乐玩模板/每个窗口2个对象

.子程序 脚本副线程, , , 脚本副线程,用于检测异常等,其实主线程也可以作检查
.参数 序号, 整数型
.局部变量 死循环, 逻辑型
.局部变量 dm, 图色模拟类
.局部变量 dm_ret, 整数型

' 初始化当前线程com组件为MTA模式
CoInitializeEx (0, 0)
线程信息 [序号].线程状态 = #线程状态_正在运行
多线程_异步通知UI (#通知类型_更新, 序号)
' 创建对象
' 线程信息 [序号].dm.创建 ()
' dm = 线程信息 [序号].dm
' 检测对象是否创建成功,虽然这个一般不会失败,但为了程序健壮性考虑还是加上,如果内存吃紧,还是可能会失败
.如果真 (取数组成员数 (线程信息.窗口句柄) = 0)
日志输出 (“对象创建失败”)
设置异常 (序号, “对象创建失败”)
返回 ()
.如果真结束
' 开启全局共享字库
' dm.EnableShareDict (1)
' ' 其他设置,比如路径等等
' dm.SetPath (“c:\test_game”)
dm_ret = dm.后台_绑定 (线程信息 [序号].窗口句柄, 1, 1, 1, 256, 1)
.如果真 (dm_ret ≠ 1)
日志输出 (“副:绑定失败,错误码:” + 到文本 (dm_ret))
' 通知主线程进行结束操作(释放资源)
设置异常 (序号, “绑定失败:副”)
返回 ()
.如果真结束
死循环 = 真
.判断循环首 (死循环)
' 检测一些异常,比如突然弹出的对话框,目标窗口被关闭或者掉线等突发情况
' 比如检测到掉线,可考虑通知UI,然后重新运行
检测异常 (序号) ' 检测异常
脚本延时 (序号, 3000)
.判断循环尾 ()