详解易语言等待线程

命令名:等待线程

等待,直到指定线程结束或等待超时才返回。返回真表示等待成功。注意,在Linux下暂不支持超时等待。本命令为初级命令。

参数 数据类型 说明
线程句柄 整数型(int) 可通过“启动线程”的第三个参数获取线程句柄。
等待时间 整数型(int) 可以被省略。指定等待时间,单位为毫秒。如果为0或负数,或被省略,表示不限定等待时间。

我们可以通过等待线程来判断一个线程是否结束

.版本 2
.支持库 EThread

.程序集 窗口程序集1
.程序集变量 线程句柄, 整数型

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

启动线程 (&子程序1, , 线程句柄)

.如果真 (等待线程 (线程句柄, ))
 信息框 (“线程结束”, 0, )
 关闭线程句柄 (线程句柄)
.如果真结束

.子程序 子程序1
.局部变量 n, 整数型

.计次循环首 (1000, n)
 输出调试文本 (到文本 (n))
.计次循环尾 ()

但是这样还有一个问题,本来用多线程的本意是为了子程序1的循环不影响窗口的消息响应,但是加了一个等待线程又把主线程阻塞了,不符合我们的本意。

解决方法就是把等待线程放到另一个线程中去:

.版本 2
.支持库 EThread

.程序集 窗口程序集1
.程序集变量 线程句柄, 整数型, , "2"

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

启动线程 (&子程序1, , 线程句柄 [1])
启动线程 (&子程序2, , 线程句柄 [2])
关闭线程句柄 (线程句柄 [2])

.子程序 子程序2

.如果真 (等待线程 (线程句柄 [1], ))
 信息框 (“线程1结束”, 0, )
 关闭线程句柄 (线程句柄 [1])
.如果真结束

.子程序 子程序1
.局部变量 n, 整数型

.计次循环首 (1000, n)
 输出调试文本 (到文本 (n))
.计次循环尾 ()

如此,在不阻塞主线程的情况下完成了等待线程。

(0)

相关推荐

  • 详解易语言等待线程

    命令名:等待线程 等待,直到指定线程结束或等待超时才返回.返回真表示等待成功.注意,在Linux下暂不支持超时等待.本命令为初级命令. 参数 数据类型 说明 线程句柄 整数型(int) 可通过"启动线程"的第三个参数获取线程句柄. 等待时间 整数型(int) 可以被省略.指定等待时间,单位为毫秒.如果为0或负数,或被省略,表示不限定等待时间. 我们可以通过等待线程来判断一个线程是否结束 .版本 2 .支持库 EThread .程序集 窗口程序集1 .程序集变量 线程句柄, 整数型 .子

  • 详解易语言的程序的输入方法概念

    为了便于输入程序,易语言内置四种名称输入法:首拼.全拼.双拼.英文.三种拼音输入法均支持南方音及多音字.首拼输入法及全拼输入法在系统中被合并为"首拼及全拼输入法",系统自动判别所输入的拼音是首拼方式还是全拼方式.双拼输入法的编码规则与 Windows 系统所提供的双拼输入法一致.例如:欲输入"取整 (1.23)"语句,各种输入法的输入文本为: ・ 首拼及全拼输入法: qz(1.23) 或者 quzheng(1.23) ・ 双拼输入法: quvg(1.23) ・ 英文

  • 详解易语言线程同步

    在易语言官方多线程支持库中提供线程同步的方法是用许可区. 加入许可区之后可以防止多个线程同时访问公用变量是发生冲突.加入许可区的代码同时只能有一个线程访问,避免冲突. 创建许可区: 创建并返回一个进入许可证数值,此许可证值用作进入程序中的指定许可代码区,以避免多线程冲突.成功返回非零整数值,失败返回0.所创建的许可证在不再使用后,必须使用"删除进入许可证"命令将其删除.本命令为初级命令. 删除进入许可证: 删除由"创建进入许可证"命令所创建返回的进入许可证.成功返回

  • 详解易语言字符命令

    易语言字符命令,这个命令比较少见,但是有用,我教大家操作. 1.易语言新建一个windows窗口 点击进入代码编辑区 具体看如何用易语言编写自己第一个程序? 2.我们输入 这个命令 字符() 3.展开这个字符命令 我们发现只有一个参数 4.这个参数比较少见,字节型它的取值范围为0~255 我们输入100看看 5.运用调试输出这个函数,具体看易语言调试输出函数实例详解 我们输入调试输出 (字符 (100)) 6.结果为 d 这个需要对照 ASCII表看看

  • 详解易语言的钩子(钩子HOOK与APIHOOK区别)

    在本篇内容里我们给大家详细分析了易语言中间的钩子概念以及HOOK与APIHOOK区别 钩子 原英文名称 Hook ,钩子的意思是指拦截或截获.作用就是拦截程序中交互的数据,先经过我们预定的钩子处理接口程序,处理过后,再交还给原处理程序,或者干脆阻止,吃掉这些数据,让原处理程序什么也得不到. 钩子原来是Windows操作系统常用来检查系统与程序间通信的一些数据是否到达目标时用的,为不传之密,后来随着一些高手们的研究,逐渐的发现了这些秘密的技术并且公布了出来.同时还有更多的人在掌握了这些技术后,用在

  • 详解易语言启动多线程

    用易语言写多线程应用要么使用多线程相关的api,支持库或模块,其实那些支持库或模块也都是封装的api,但是要比api使用方便. 总体来说易语言官方的多线程支持库要比一些杂七杂八的模块好多了. 支持库勾选上之后就可以使用易语言的多线程支持库了. 首先看用易语言多线程支持库创建线程的命令:启动线程: 命令名:启动线程 创建并启动一条线程,可重复使用以创建多条线程,成功返回真,失败返回假. 参数 数据类型 说明   参数<1>的名称为"欲执行的子程序" 子程序指针(SubPtr)

  • 详解易语言中的数据类型

    各种数据存放在磁盘或内存中都有其不同的存放格式,因此就存在不同的数据类型.了解各种数据的特性,对编程开发来说是十分重要. 程序中经常会进行一些运算,易语言中的运算都要使用运算符进行识别处理,并通过运算表达式来完成运算操作.程序中对各数据之间的关系的描述也要通过运算符. 1.易语言的数据类型 一个程序内部应包括两个方面的内容:1.数据的描述.2.操作步骤,即对程序动作的描述. 数据是程序操作的对象,操作的结果会改变数据的内容.打个比方:要做一道菜,做菜前先选择烹饪的原材料(即对数据进行描述),然后

  • 详解易语言变量用法和原理

    易语言是一款可视全中文的编程语言,由于他的简单易用,深受国人喜欢,下面我来为大家介绍易语言变量的用法. 易语言变量,就像是数学中设x一样,顾名思义它是不定值的,它分为局部变量,全局变量,和程序集变量,下面我为用一个程序来向大家介绍这3种变量的区别. 打开易语言,新建一个windows窗口程序,将按钮按下图所示排列. 点击插入,选择窗口,插入一个新的窗口,点击按钮1,写入代码入下图所示, 点击窗口程序集,回车,添加一个程序集变量,命名为c,类型为文本型. 点击插入,分别添加全局变量,命名为q,类型

  • 详解易语言写内存整数型

    本篇文章主要介绍如何使用编程软件"易语言"做到修改指定进程的指定内存地址中的整数型数据. 1.启动"易语言". 2.选择"菜单栏"中的"f.程序",再在弹出的列表中选择"N.新建". 3.在弹出的标题为"新建:"的窗口中选择"Windows窗口程序",再点击标题为"确定(o)"的按钮. 4.在背景为灰色的,且标题为""(空的文本

  • 详解易语言常量用法

    易语言常量用法,我用实例讲解,下面一步步操作,大家学懂了,给我投一票,谢谢! 1.易语言新建一个windows窗口点击常量表进入 2.ctrl+N 就会增加一列 如图 3.我们设置常量 分别在相应位置输入数据  如图 4.我们双击 新建的窗口 进入代码编辑区 输入_启动窗口.标题=#常量1 5.这里介绍下 常量的用法 就是常量名前面加上# 看图 这样就把它的值使用了 6.我们运行看看结果 看图 标题改变成了我们设置的常量

随机推荐