易语言启动线程传递多个类型的数据变量

易语言的启动线程默认是传递一个整数的,在 易语言启动线程传递文本参数中,我们讲解了传递文本参数,今天,我们示范传递多个变量
思路是我们把要传递的变量定义成一个整数型数组,传递的是参数内容的内存地址指针,由于传递的参数可能是文本和整数,所以我们要封装两个取文本指针地址和取整数指针地址,文本和整数在内存中的字节是不同的。

取文本指针地址

申请空间并获取一个文本指针地址!

511遇见(www.511yj.com) 

.版本 2
.支持库 spec.子程序 取文本指针地址, 整数型, 公开, 申请空间并获取一个指针地址!
.参数 文本, 文本型
.局部变量 指针地址, 整数型指针地址 = 申请内存 (取文本长度 (文本) + 1, 真)
写到内存 (文本, 指针地址, 取文本长度 (文本))
返回 (指针地址)

取整数指针地址

 申请空间并获取一个整数指针地址

511遇见(www.511yj.com) 

.版本 2
.支持库 spec.子程序 取整数指针地址, 整数型, 公开, 申请空间并获取一个指针地址
.参数 数值, 整数型
.局部变量 指针地址, 整数型指针地址 = 申请内存 (4, 真)
写到内存 (数值, 指针地址, 4)
返回 (指针地址)

取构造变量数组值_整数型

从构造变量数组 的数组堆里,取出指定成员整数的指针地址来获得最终数据 

 511遇见(www.511yj.com)

.版本 2
.支持库 spec.子程序 取构造变量数组值_整数型, 整数型, 公开, 从 构造变量数组 的数组堆里,取出指定成员的指针地址来获得最终数据
.参数 指针地址, 整数型
.参数 索引值, 整数型
.参数 是否释放, 逻辑型, 可空, 建议用完后进行释放
.局部变量 数据指针地址, 整数型
.局部变量 结果_整数型, 整数型数据指针地址 = 指针到整数 (指针地址 + (索引值 - 1) × 4)
结果_整数型 = 指针到整数 (数据指针地址)
.如果真 (是否释放)释放内存 (数据指针地址)
.如果真结束
返回 (结果_整数型)

取构造变量数组值_文本型

 从构造变量数组 的数组堆里,取出指定成员文本的指针地址来获得最终数据 

511遇见(www.511yj.com) 

.版本 2
.支持库 spec.子程序 取构造变量数组值_文本型, 文本型, 公开, 从 构造变量数组 的数组堆里,取出指定成员的指针地址来获得最终数据
.参数 指针地址, 整数型
.参数 索引值, 整数型
.参数 是否释放, 逻辑型, 可空, 建议用完后进行释放
.局部变量 数据指针地址, 整数型
.局部变量 结果_文本型, 文本型数据指针地址 = 指针到整数 (指针地址 + (索引值 - 1) × 4)
结果_文本型 = 指针到文本 (数据指针地址)
.如果真 (是否释放)释放内存 (数据指针地址)
.如果真结束
返回 (结果_文本型)

构造变量数组

将所有的指针地址,存放到一个 指针数组内! 

511遇见(www.511yj.com) 

.版本 2
.支持库 spec.子程序 构造变量数组, 整数型, 公开, 原理:将所有的指针地址,存放到一个 指针数组内!
.参数 变量地址数组, 整数型, 数组
.局部变量 i, 整数型
.局部变量 当前地址, 整数型
.局部变量 指针地址, 整数型指针地址 = 申请内存 (取数组成员数 (变量地址数组) × 4, 真)
.计次循环首 (取数组成员数 (变量地址数组), i)当前地址 = 变量地址数组 [i]写到内存 (当前地址, 指针地址 + (i - 1) × 4, 4)
.计次循环尾 ()
返回 (指针地址)

主线程

511遇见(www.511yj.com) 

.版本 2
.支持库 spec.子程序 主线程
.参数 指针地址, 整数型调试输出 (取构造变量数组值_文本型 (指针地址, 1, 真), “参数1内容”)
调试输出 (取构造变量数组值_文本型 (指针地址, 2, 真), “参数2内容”)
调试输出 (取构造变量数组值_文本型 (指针地址, 3, 真), “参数3内容”)
调试输出 (取构造变量数组值_整数型 (指针地址, 4, 真), “参数4内容”)
' 填真就会释放内存,如果再次调用就取不到,所以建议用完记得释放指针内存
释放内存 (指针地址)

启动线程调用传参

511遇见(www.511yj.com) 

.版本 2
.支持库 EThread.局部变量 地址数组, 整数型, , "0"加入成员 (地址数组, 取文本指针地址 (“我是第一个参数!”))
加入成员 (地址数组, 取文本指针地址 (“我是第二个参数!”))
加入成员 (地址数组, 取文本指针地址 (“我是第三个参数!”))
加入成员 (地址数组, 取整数指针地址 (66666))
启动线程 (&主线程, 构造变量数组 (地址数组), )

源码:易语言启动线程传递多个类型变量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1549809.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

在IDEA启动多个Spring Boot工程实例

对于配置比较多方便保存的则使用下面的方式: 方式一 spring boot允通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件,然后通过在application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件&am…

JMeter压力测试-多线程组并发测试(多场景混合并发)

JMeter压力测试(一)中设置线程组的线程数,即执行时的并发用户数,适用于单个线程组的并发测试。 如果测试需求出现如下场景,该如何使用JMeter实现压力测试呢?即JMeter如何实现多线程组并发测试,…

Java同时执行多个线程(优雅的进行线程池创建)

欢迎访问我的个人博客:www.ifueen.com 有时候我们会遇到这样的场景,需要通过多线程同时去对某些信息进行处理然后再进行开展后续的业务,这时候就需要用到多线程来同时并发处理这些数据 其实多线程处理的方式有很多,线程池,自定义…

python3-启动多个线程

问题:在for循环里面想同时启动多个线程,但是程序运行过程中产生的是线程一个一个启动,即:启动第一个线程之后主线程等待子线程运行完成之后才启动第二个,代码如下: import threading import time def thre…

【优化】Maven开启多线程构建编译 性能优化

【优化】Maven开启多线程构建编译 性能优化 提高编译的效率 IDEA配置 增加跳过测试代码的编译命令: -Dmaven.test.skiptrue 指明多线程进行编译:-Dmaven.compile.forktrue mvn -T 4 clean install mvn -T 1C clean install 以本机为例 使用记事本打…

HTML总结 2[转]

以下转载和参考自:HTML 表单。 1、表格 可以通过 CSS 设置表格的样式: 如下为将上面table.lamp th,td样式中的padding注释掉,开启table.lamp中的padding的效果: 2、列表 3、表单 表单用于收集用户的输入,如下图所…

因为懒得下载Visual Studio,而使用dotnet-cli这件事

window常用命令: 1.windows清屏指令:CLS 2.创建文件夹: mkdir 3.使用敲过的命令:↑ 或者 ↓(这个方向键) nuget官方地址:https://www.nuget.org/ 一、概述: .NET 命令行接口 (CLI) 工具是用于开发、生成、运行和发布 .NET 应用程序的跨平台工具链。 .NET CLI 附带…

10个非常有用的Python库,你知道几个?

整理|TesterHome 这里给大家介绍10个不是最流行但非常有用的Python库,希望可以提供参考帮助。 PyO3 PyO3是一个Rust库,可以让你在Rust中编写Python模块。它可以利用 Rust 的速度和安全性编写高性能的 Python 模块。 https://github.com/PyO3…

NiN(网络中的网络)

1、NiN与AlexNet的区别 卷积层的输入和输出通常是四维数组(样本,通道,高,宽),而全连接层的输入和输出则通常是二维数组(样本,特征)。如果想在全连接层后再接上卷积层&am…

【网络编程系列】NIO

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

NIO 应用-网络通信

目录 1. 服务端处理器关注读事件2. 服务端启动类3. 客户端处理器4. 客户端启动类5. 先启动服务端,再启动客户端6. 新建一个服务端处理器,同时关注读事件和写事件7. 启动类8. 先启动服务端,再启动客户端代码下载地址 1. 服务端处理器关注读事件…

人工神经网络--ANN

神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向--深度学习的基础。学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术。 本文以一种简单的,循序的方式讲解神经网络。适合对神经网络了解不多的…

LabVIEW对NI Linux RT应用程序性能进行基准测试

LabVIEW对NI Linux RT应用程序性能进行基准测试 如果应用程序具有苛刻的性能要求,则应为应用程序创建性能基准测试,以确保它满足性能要求。性能要求高度依赖于应用程序,应确定哪些性能指标很重要。下面介绍了典型的实时应用程序性能指标。 如…

NIN网络-Network In Network

图像分类系列: 0、BP前反馈神经网络原理详解 1、Lenet详解 2、Alexnet详解 3、VGG网络结构 4、NIN网络结构 5、Googlenet inception v1 结构详解、inception v2 和 inception v3 参考 https://www.cnblogs.com/makefile/p/nin.html,第一个卷积核是…

机器学习——人工神经网络(NN)

文章链接: 机器学习——卷积神经网络(CNN) 机器学习——循环神经网络(RNN) 机器学习——长短期记忆(LSTM) 机器学习——决策树(decision tree) 机器学习——随机森林…

NNI (Neural Network Intelligence)简介

是什么 NNI (Neural Network Intelligence) 是一个轻量但强大的自动机器学习(AutoML)工具包,能帮助用户自动地进行特征工程、神经网络架构搜索、超参调优以及模型压缩。 优势 支持多框架、多训练平台,中文文档,易用…

LabVIEW 设定NI-DAQmx通道的共享变量的轮询速率

LabVIEW 设定NI-DAQmx通道的共享变量的轮询速率 当使用LabVIEW共享变量引擎通过NI-DAQmx通道来发布数据时,希望数据更新速率更快。该如何设定通道对共享变量的轮询速率? 在主机上,有一个叫做Server Polling Rate(服务器轮询速率…

神经网络:Network In Network

《Network In Network》论文解读 本文来自于新加坡国立大学,原文地址: https://arxiv.org/abs/1312.4400 概述 本文提出了一种叫Network in Network的网络结构,主要贡献有两个:一是mlpconv网络结构,一是Global averag…

NIO网络通信

阻塞式IO与非阻塞式IO 传统的IO流都是阻塞式的。也就是说,当一个线程调用read() 或write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行IO操作时&#xff0c…

自动驾驶仿真:Carsim、NI和VTD联合仿真课题二

文章目录 前言一、设备配置1、硬件需求1.1 电脑一(Linux系统)1.2 电脑二(Window系统)1.3 NI实时机系统 2、网络配置2.1 IP设置 二、Carsim工程配置1、创建工程1.1 复制NI的模板,创建新工程 2、创建数据库2.1 复制数据库…