[远航笔记流水帐]易大漠多线程初级教程086(4-7)


小知识:易语言的多行注释快捷键 ctrl+K 注释 ctrl+m是取消注释 用起来很顺手数组

4.易大漠多线程初级之传递参数

讲了下函数的参数的基础知识。。。。。不说了多线程

5.易大漠多线程初级之多线程大漠传递简单应用

本节课只要说了一下  远航模块里面的专门为多线程准备的一个全局数组 [大漠多线程信息]函数

小知识:远航模块里面的专门为多线程准备的一个全局数组 [大漠多线程信息] 对这个全局数组的理解学习

先看看这个数组的结构测试

image

类型为 大漠线程信息  这个是远航模块内的自定义类型  该数组一上来就默认有999个元素url

大漠线程信息 这个自定义类型结构以下spa

image

很明显 这个数组的每一个元素下有个成员叫大漠 这个大漠的类型是大漠中文版.net

再看看以往咱们的调用大漠 最经常使用的 全局大漠  类型也是大漠中文版 插件

image

很明显 这个 大漠多线程信息 这个全局数组 每一个元素的大漠成员都是一个大漠潜在的对象 只要咱们以这样的形势来线程

大漠多线程信息[x].大漠.建立对象() 就能够建立一个真正的大漠对象  并且大漠多线程信息 是一个有999个元素的数组

这就意味着咱们有999个潜在的大漠对象可供使用 正好对应多线程的各类需求 这个全局数组元素 还能记录 线程对应的id

不过惋惜的是我没看到有记录对应 许可证 的成员属性。。有点惋惜 但愿向后学习能解决这个问题


大漠多线程信息建立大漠对象 线程 和其余相关的基本结构


.版本 2 .计次循环首 (5, i) ' 1 建立该线程下的大漠对象 大漠多线程信息 [i].大漠.建立对象 () ' 2判断下是否建立成功 .若是真 (大漠多线程信息 [i].大漠.取插件版本="") 信息框 (“大漠多线程信息[” + 到文本 (i) + “]建立大漠对象失败”, 0, , ) 结束 () .若是真结束 ' 3 再建立对应的线程 并把线程id记录到 大漠多线程信息 [i].线程句柄 里面 ' 4 若是能够建立下对应的许可证的更好了 把许可证也记录到 大漠多线程信息 [i] 的成员里面 惋惜暂时没有 .计次循环尾 ()


6.1易大漠多线程初级之多窗口执行相同任务一

留个记念:以实例来 用 大漠多线程信息 数组 来实现多线程大漠操做的例子 和老师的有点差别 我这里多加了一个每一个线程增长一个许可证的额外操做 不过总体仍是很是粗糙

image

开启多线程按钮下的代码

image


线程内的固定结构

image

窗口销毁事件或者关闭线程按钮的点击事件

image


6.2易大漠多线程初级之多窗口执行相同任务二

小知识:用进程名获取对应的全部窗口的句柄

精益模块的命令

image

第一个是返回的整数型数组 元素内容能够直接拿来用

第二个是返回的文本型数组 元素内容须要到整数函数处理才能够


疑问  共用的 文件夹和字库文件  一旦多线程同时使用 如何处理? 需不须要许可证来控制。


小知识:对多线程下的取随机数() 的理解

之前对这个 取随机数() 有个错误的任务 认为这个函数内置了置随机数种子 今天再多线程下测试 发现不对

若是我把 置随机数种子 () 放到 窗口启动事件里面 在线程函数内部不加这个 置随机数种子 ()  那么结果是这样

image

若是我在线程函数内部加上  置随机数种子 ()  那么结果就正常了 是真的随机数

image

结论:线程函数内部使用随机数相关函数 仍是要在线程函数内部  置随机数种子 ()   主代码那边 声明的 置随机数种子 () 对线程内无效


本节课内容和上节课差很少


不过是用于实际了极光游戏过于麻烦  我就以记事本为窗口 实现多线程控制全部记事本 向里面写入随机字母

基本上以前的代码同样 不过就是记事本写入内容须要是记事本的子窗口绑定才能够  其余的基本没变化

image


7.易大漠多线程初级之多窗口执行不一样任务

基本思路是 凭借 线程_启动脚本的第二个参数传递给 线程函数的值的不一样来进行不一样的操做

好比之前游戏 组队是5我的  其中一个是队长 队长的操做很明显和其余人的普通队员的操做要区分开来

咱们传递进线程函数里面的参数 从1开始到最后 分别对应一个窗口 若是这个参数能被5整除 好比5  10 15 20 咱们就认为这个参数对应的窗口要执行

队长的操做而不是队员操做 在线程函数内部

image



123

相关文章
相关标签/搜索