开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3880|回复: 11
收起左侧

[易源码分享] 精益模块多线程新手学习例子!

[复制链接]
结帖率:75% (6/8)
发表于 2020-3-18 02:35:21 | 显示全部楼层 |阅读模式   陕西省咸阳市
分享源码
界面截图: -
是否带模块: 调用了模块
备注说明: -
本帖最后由 黄泉无际 于 2020-3-18 09:12 编辑

一直对多线程雾里看花。。。

什么许可证,这了那了的。。。很迷茫,教材看了好几个感觉也没什么用,唯一的用处就是更迷茫了。

前两天跟一个大神聊天,大神说了一句:“只要不崩溃,只要没BUG,你搞的再复杂有什么意义?炫技么?”

是啊,既然简简单单就能做到的事情 为什么要复杂化呢?  也许并不完美,也许有人看到嗤之以鼻,我也只能说声,这就是最简单的,最方便的,新手学习是够的! 最起码懂了什么叫多线程

不再废话,上源码 只用了精益模块,请自行在论坛下载 我就不上传了
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
xcqd1整数型主线程线程句柄
xcqd2逻辑型主线程关闭是否成功判断
tz逻辑型循环逻辑变量
xz2逻辑型子线程关闭是否成功判断
xz1整数型子线程句柄
gj2逻辑型  
gj1整数型  
cz2逻辑型  
cz1整数型  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
' ----------------------------------------------------------------------------------------------------------------------------
' 举个简单的例子:以游戏为例   角色行走-线程1   角色攻击-线程2 打怪状态-线程3
' 这样就比较容易理解了 首先 我们的主线程就是我们是不是要开始打怪的控制 启动主线程就开始打怪了
' 而打怪又分为很多操作,
' 比如我们要走着找怪 这时候我们就需要启动  角色行走-
' 找到怪物了我们就又要启动 角色攻击-
' 打怪打死没打死我们又要启动  打怪状态-
' 在单线程中 我们 一般写成  角色行走-角色攻击-打怪状态-  这种线性的操作模式
' 多线程就很简单了 我们就能一边走着一边打怪打着怪还能看看怪打死了没有 这就是多线程的便利之处了
子程序名返回值类型公开备 注
_按钮1_被单击 启动键
tz =   ' 循环判断条件
xcqd1 = 线程_启动 (&xcqd, , xcqd1)  ' xcqd1(主线程句柄) &xcqd(主线程程序) xcqd1(主线程句柄)
子程序名返回值类型公开备 注
_按钮2_被单击 停止键
tz =   ' 循环判断条件
xz2 = 线程_销毁 (xz1)  ' 停止角色行走线程
gj2 = 线程_销毁 (gj1)  ' 停止角色攻击线程
cz2 = 线程_销毁 (cz1)  ' 停止打怪状态线程
子程序名返回值类型公开备 注
xcqd 主线程程序
tz =   ' 循环判断条件
xz1 = 线程_启动 (&xz0, , xz1)  ' xz1(角色行走-线程句柄) &xz0(角色行走-程序) xz1(角色行走-线程句柄)
gj1 = 线程_启动 (&gj0, , gj1)  ' gj1(角色攻击-线程句柄) gj0(角色攻击-程序)gj1(角色攻击-线程句柄)
cz1 = 线程_启动 (&cz0, , cz1)  ' cz1(打怪状态-线程句柄) cz0(打怪状态-程序)cz1(打怪状态-线程句柄)
' xcqd2 = 线程_销毁 (xcqd1)  ' 停止主程序线程否则主程序进程会重复启动子线程
子程序名返回值类型公开备 注
xz0  
变量名类 型静态数组备 注
s整数型 
循环判断首 ()
s = s + 1
调试输出 (“角色行走”, xz1, s)
程序_延时 (2, 1)
循环判断尾 (tz = )
子程序名返回值类型公开备 注
gj0  
变量名类 型静态数组备 注
s整数型 
循环判断首 ()
s = s + 1
调试输出 (“角色攻击”, gj1, s)
程序_延时 (2, 1)
循环判断尾 (tz = )
子程序名返回值类型公开备 注
cz0  
变量名类 型静态数组备 注
s整数型 
循环判断首 ()
s = s + 1
调试输出 (“打怪状态”, cz1, s)
程序_延时 (2, 1)
循环判断尾 (tz = )


i支持库列表   支持库注释   
spec特殊功能支持库

精益模块多线程例子.e

845.93 KB, 下载次数: 62, 下载积分: 精币 -2 枚

评分

参与人数 1好评 +1 精币 +2 收起 理由
想学易语言 + 1 + 2 新技能已get√

查看全部评分


本帖被以下淘专辑推荐:

结帖率:0% (0/1)

签到天数: 7 天

发表于 2023-11-9 01:13:29 | 显示全部楼层   广西壮族自治区南宁市
感谢楼主分享经验
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)

签到天数: 19 天

发表于 2023-8-15 22:11:23 | 显示全部楼层   贵州省黔西南布依族苗族自治州
赠人玫瑰手有余香
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)

签到天数: 19 天

发表于 2023-8-9 23:40:11 | 显示全部楼层   贵州省黔西南布依族苗族自治州
zr赠人玫瑰手有余香
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2020-6-9 15:52:32 | 显示全部楼层   广东省*
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2020-5-1 15:32:29 | 显示全部楼层   福建省厦门市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:88% (7/8)
发表于 2020-3-28 17:19:01 | 显示全部楼层   河南省郑州市
感谢分享         
回复 支持 反对

使用道具 举报

结帖率:75% (6/8)
 楼主| 发表于 2020-3-22 02:49:38 | 显示全部楼层   陕西省咸阳市
.版本 2
.支持库 spec

.程序集 窗口程序集_启动窗口
.程序集变量 xcqd1, 整数型, , , 主线程线程句柄
.程序集变量 xcqd2, 逻辑型, , , 主线程关闭是否成功判断
.程序集变量 tz, 逻辑型, , , 循环逻辑变量
.程序集变量 xz2, 逻辑型, , , 子线程关闭是否成功判断
.程序集变量 xz1, 整数型, , , 子线程句柄
.程序集变量 gj2, 逻辑型
.程序集变量 gj1, 整数型
.程序集变量 cz2, 逻辑型
.程序集变量 cz1, 整数型
.程序集变量 xkz1, 线程许可证
.程序集变量 xkz2, 线程许可证
.程序集变量 xkz3, 线程许可证

.子程序 __启动窗口_创建完毕

' ----------------------------------------------------------------------------------------------------------------------------
' 举个简单的例子:以游戏为例   角色行走-线程1   角色攻击-线程2 打怪状态-线程3
' 这样就比较容易理解了 首先 我们的主线程就是我们是不是要开始打怪的控制 启动主线程就开始打怪了
' 而打怪又分为很多操作,
' 比如我们要走着找怪 这时候我们就需要启动  角色行走-
' 找到怪物了我们就又要启动 角色攻击-
' 打怪打死没打死我们又要启动  打怪状态-
' 在单线程中 我们 一般写成  角色行走-角色攻击-打怪状态-  这种线性的操作模式
' 多线程就很简单了 我们就能一边走着一边打怪打着怪还能看看怪打死了没有 这就是多线程的便利之处了


xkz1 = 线程_创建许可证 ()  ' 创建每个线程的许可证,防止线程重复启动
xkz2 = 线程_创建许可证 ()
xkz3 = 线程_创建许可证 ()



.子程序 _按钮1_被单击, , , 启动键

tz = 假  ' 循环判断条件

xcqd1 = 线程_启动 (&xcqd, , xcqd1)  ' xcqd1(主线程句柄) &xcqd(主线程程序) xcqd1(主线程句柄)


.子程序 _按钮2_被单击, , , 停止键

tz = 真  ' 循环判断条件
xz2 = 线程_销毁 (xz1)  ' 停止角色行走线程

gj2 = 线程_销毁 (gj1)  ' 停止角色攻击线程

cz2 = 线程_销毁 (cz1)  ' 停止打怪状态线程


.子程序 xcqd, , , 主线程程序

tz = 假  ' 循环判断条件
线程_进入许可区 (xkz1)  ' 进入创建好的许可证,当我们的跳出循环条件达成就会进行下一步退出许可证
xz1 = 线程_启动 (&xz0, , xz1)  ' xz1(角色行走-线程句柄) &xz0(角色行走-程序) xz1(角色行走-线程句柄)
线程_退出许可区 (xkz1)  ' 循环条件达成退出许可证

线程_进入许可区 (xkz2)
gj1 = 线程_启动 (&gj0, , gj1)  ' gj1(角色攻击-线程句柄) gj0(角色攻击-程序)gj1(角色攻击-线程句柄)
线程_退出许可区 (xkz2)

线程_进入许可区 (xkz3)
cz1 = 线程_启动 (&cz0, , cz1)  ' cz1(打怪状态-线程句柄) cz0(打怪状态-程序)cz1(打怪状态-线程句柄)
线程_退出许可区 (xkz3)




.子程序 xz0
.局部变量 s, 整数型

.循环判断首 ()
    s = s + 1
    调试输出 (“角色行走”, xz1, s)

    程序_延时 (10, 0)

.循环判断尾 (tz = 假)



.子程序 gj0
.局部变量 s, 整数型


.循环判断首 ()
    s = s + 1
    调试输出 (“角色攻击”, gj1, s)
    程序_延时 (10, 0)


.循环判断尾 (tz = 假)

.子程序 cz0
.局部变量 s, 整数型


.循环判断首 ()
    s = s + 1
    调试输出 (“打怪状态”, cz1, s)
    程序_延时 (10, 0)

.循环判断尾 (tz = 假)

.子程序 __启动窗口_将被销毁


线程_删除许可证 (xkz1)
线程_删除许可证 (xkz2)
线程_删除许可证 (xkz3)

精益模块多线程例子.e

846.7 KB, 下载次数: 11, 下载积分: 精币 -2 枚

增加许可证后的多线程

回复 支持 反对

使用道具 举报

结帖率:90% (9/10)
发表于 2020-3-21 22:44:51 | 显示全部楼层   湖北省武汉市
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)
发表于 2020-3-18 12:21:42 | 显示全部楼层   山东省威海市
感谢楼主分享经验
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表