易语言多线程大漠多线程-35大漠多线程模板-5多线程启动

多线程启动源码

.版本 2
.支持库 EThread
 
.子程序 多线程_启动, 逻辑型, , 成功返回真,失败返回假
.参数 窗口句柄, 整数型
.局部变量 主序号, 整数型
 
 
' 判断句柄
.如果真 (窗口句柄 = 0)
    日志输出 (“无效的窗口句柄”)
    返回 (假)
.如果真结束
 
' 多线程_是否启动
.如果真 (多线程_是否启动 (窗口句柄))
    日志输出 (“给句柄线程已经启动了”)
    返回 ()
 
.如果真结束
 
' 判断,多线程_取空余位置
主序号 = 多线程_取空余位置 ()
.如果真 (主序号 = -1)
    日志输出 (“没有空余线程位置了”)
    返回 (假)
.如果真结束
 
' 更新UI,
' 第一主线程
线程信息 [主序号].线程句柄 = 0
线程信息 [主序号].窗口句柄 = 窗口句柄
线程信息 [主序号].进程PID = 全局大漠.GetWindowProcessId (窗口句柄)
线程信息 [主序号].是否暂停 = 假
线程信息 [主序号].是否结束 = 假
线程信息 [主序号].线程状态 = #线程状态_正在启动
 
 
 
' 副线程
线程信息 [主序号 + MaxHwnd].线程句柄 = 0
线程信息 [主序号 + MaxHwnd].窗口句柄 = 窗口句柄
线程信息 [主序号 + MaxHwnd].进程PID = 全局大漠.GetWindowProcessId (窗口句柄)
线程信息 [主序号 + MaxHwnd].是否暂停 = 假
线程信息 [主序号 + MaxHwnd].是否结束 = 假
线程信息 [主序号 + MaxHwnd].线程状态 = #线程状态_正在启动
' UI更新
UI_更新 (主序号, #UI_增加)
 
 
' 启动线程(),这里只创建了主线程,副线程放到主线程里去创建
 
.如果真 (启动线程 (&脚本主线程, 主序号, 线程信息 [主序号].线程句柄) = 假)
    UI_更新 (主序号, #UI_删除)
    多线程_复位 (主序号)
    多线程_复位 (主序号 + MaxHwnd)
    日志输出 (“线程创建失败!”)
    返回 ()
.如果真结束
 
日志输出 (“启动 hwnd =” + 到文本 (窗口句柄) + “,主序号” + 到文本 (主序号))
返回 ()


发布日期:

所属分类: 易语言 标签: