易语言多线程最简单使用方法命令组合是什么?5分钟上手

易语言多线程其实是一个概念,只是如果给大家来个几个小时的课程才能全部讲完讲透彻,很多人就听不下去了。

我前几次尝试学习易语言的时候,听到多线程这个章节基本也是这种状态。

昨天趁着状态不错耐着性子听完了精易论坛《易语言软件开发工程师》落雪课程里的多线程入门和深入课,从多线程原理到线程池。

不能说全部掌握,落地常用命令和方法我觉得还是可以参考参考的。

一、易语言多线程概念

任务管理器

用大白话来讲,打开电脑的任务管理器,会发现我们启动的所有软件都会有一个进程,相当于给了一个软件开了一条跑道。

但是每个软件又不可能都只有单一功能,可能一个浏览器打开后有很多的小软件小功能都在运行,例如我使用的mindmaster思维导图软件,主应用和我打开的页面都需要运行,这时候就有了线程的概念。

一个进程下面至少有一个线程,一个进程下面可能有多个线程。

就像我们单纯打开软件初始界面有一个进程,下面可能只有一个线程,但随着我们软件同时打开的页面、使用的功能逐渐增加得时候,这个软件进程下面就可能产生更多的线程。

我们用易语言做出来的也是软件,那么难免我们的软件也需要使用多线程命令来处理一些需要多个任务同时执行的功能。

二、易语言软件一定要使用多线程嘛?

不一定。

如果你现在做出来的软件功能不多,并且正常运营并没有特别大的延迟和卡顿,那么基本上占用电脑内存和资源并不多,这种情况下不需要使用多线程。

三、哪些情况下需要用到多线程?

一般以下两种情况我们就需要用到多线程:

1.有同时需要执行的多个工作

这里并不是说我们点击按钮之后需要既需要编辑框1工作,也需要编辑框2工作,这种简单的多组件运行还用不到多线程操作。

举一个最简单的应用场景:当我们需要批量下载一些资源的时候,如果我们正常使用易语言去编写下载命令,那他肯定就是一个一个下载的。

这时候如果使用多线程的话,我们就可以同时多次调用下载命令,可以同时下载10个资源或者更多。

这时候的“多队列下载”就能比较直观的感觉到多线程的作用。

2.有操作会长时间占用线程的时候

平时我们往易语言中导入一个txt、导入一个excel表格可能都是秒入的,就算是读取可能也就1秒钟以内就能够解决。

但是如果遇到大文件导入的时候,例如我们需要导入一个100MB的txt文档,并且需要对整个文档进行搜索处理。

这时候我们导入文件和处理文件大概率都会导致软件程序卡顿界面无法操作,因为你的下一步操作都要等前面这个步骤结束了才能开始。

这时候我们如果使用多线程命令,在软件的进程下单独开一条线程(快速通道)给他来用,而不占用主干道。

四、易语言多线程模块与支持库

有很多命令可以实现线程操作和同步操作,比较简单的一些指令我们可以尝试使用。

1.下载精易模块

精易模块下载界面

精易模块线程命令

易语言自带的支持库里的线程相关命令无法将线程暂停、恢复,这时候我们可以使用精易模块中的线程相关指令来操作。

精易模块:https://ec.125.la/update.htm

2.全选易语言特殊功能支持库

我们使用的一些其他特殊命令需要用到,这里我们也勾选启用上。

易语言特殊功能支持库

五、常用多线程命令

1.线程_启动

易语言线程命令编写

不用把线程命令想的那么复杂,我们就可以单纯的理解为:如果我们要打开一个Excel表格,就有对应的【打开表格】和【关闭表格】这两个命令,如果我们要读取里面的内容,那可能在这两个命令中间要加上【读取表数据】一系列的命令。

线程也是一样的,每一个我们写好的子程序就是我们要执行的线程指令。

最常用的基础线程指令是:线程_启动(,,)

我们可以只写第一个参数,这里要求的数据类型是子程序指针,我们只需要在子程序名称前面加一个&就可以了。

这就是多线程最基础的命令。

2.线程_挂起/恢复

线程启动命令

这是精易模块中的命令功能,可以将线程进行暂停和恢复。

这里我们需要提供一个参数:线程句柄,来告诉命令需要对哪一个线程进行操作。

线程句柄在我们上面的线程_启动执行时,会返回数据,所以我们可以创建一个变量来承接线程句柄。

另外需要注意的是:同一个线程可以被多次挂起和恢复,挂起几次就要恢复几次。

例如挂起了3次,你只恢复了2次,那么这个线程也仍然是挂起状态。

3.多线程同步

这里使用组合命令:

窗口启动后,直接创建进入许可证(),另外创建一个许可证命名的变量(整数型)。

然后在线程子程序内部的开头和结尾加上进入许可区()退出许可区()

最后在程序窗口销毁前加上删除进入许可证()

 

以上就是易语言多线程的一些基础知识和命令的使用场景,未来在实战案例中我们肯定还会更加频繁的接触到多线程的使用场景,到时候我们会通过疯筹网或疯筹易语言课程与大家进行交流和探讨。