511遇见易语言多线程大漠多线程-13Api封装线程启动返回逻辑

封装多线程模块-线程启动-2

• 1、线程_启动_逻辑()
• 2、SHCreateThread
• 易语言SHCreateThread
SHCreateThread function | Microsoft Docs https://docs.microsoft.com/zh-cn/windows/desktop/api/shlwapi/nf-shlwapi-shcreatethread
SHCreateThread

.版本 2
.参数 线程地址, 子程序指针, , pfnThreadProc
.参数 数据, 整数型, , pData,Any---0

指向包含初始化数据的可选应用程序定义数据结构的指针。它被传递给pfnThreadProc和pfnCallback(可选)指向的函数。这个值可以是NULL。
.参数 标志, 整数型, , dwFlags------0
控制函数行为的标志。一个或多个CTF常数。
.参数 返回信息, 整数型, , pfnCallback—0
SHCreateThread将等待pfnCallback所指向的函数返回,然后再返回给它的调用者。pfnCallback指向的函数的返回值被忽略。
这个函数,这是shlwapi.dll 的一个导出函数,这个函数看字面也能理解是个创建多线程的函数,是基于对象操作的多线程函数,相对比较稳定

教程源码:

.版本 2
.支持库 EThread

.子程序 _按钮1_被单击

编辑框4.内容 = 到文本 (启动线程 (&子程序1, , e_hwnd))
编辑框1.内容 = 到文本 (e_hwnd)

.子程序 子程序1
.局部变量 i

.判断循环首 (e_是否启动 = 假)
i = i + 1
列表框1.加入项目 (到文本 (i), )
标签1.标题 = 到文本 (列表框1.取项目数 ())
延时 (1)
处理事件 ()
.判断循环尾 ()

.子程序 _按钮2_被单击

a_hwnd = 线程_启动_句柄 (&子程序2, , a_thid)
编辑框2.内容 = 到文本 (a_hwnd)
编辑框3.内容 = 到文本 (a_thid)

.子程序 子程序2
.局部变量 n

.判断循环首 (a_是否启动 = 假)
n = n + 1
列表框2.加入项目 (到文本 (n), )
标签2.标题 = 到文本 (列表框2.取项目数 ())
延时 (1)
处理事件 ()
.判断循环尾 ()

.子程序 _按钮3_被单击

e_是否启动 = 真
线程_关闭句柄 (e_hwnd)

.子程序 _按钮4_被单击

a_是否启动 = 真
线程_关闭句柄 (a_hwnd)

.子程序 _按钮5_被单击

编辑框4.内容 = 到文本 (线程_启动_逻辑 (&子程序2, , l_hwnd, l_thid))
编辑框2.内容 = 到文本 (l_hwnd)
编辑框3.内容 = 到文本 (l_thid)

.子程序 _按钮6_被单击

编辑框2.内容 = 到文本 (线程_启动_扩展 (&子程序2))

模块源码:

.版本 2
 
.参数 要启动的子程序, 子程序指针, , 要启动的子程序
 
返回 (SHCreateThread (要启动的子程序, 0, 0, 0))
 
.子程序 线程_关闭句柄, 逻辑型, 公开, 关闭一个线程,关闭后线程继续运行,但是无法对这个线程操作
.参数 线程句柄, 整数型
 
返回 (CloseHandle (线程句柄))


发布日期:

所属分类: 后端 标签:  


下一篇:

没有了,已经是最新文章