时间:2021-05-19
用易语言写多线程应用要么使用多线程相关的api,支持库或模块,其实那些支持库或模块也都是封装的api,但是要比api使用方便。
总体来说易语言官方的多线程支持库要比一些杂七杂八的模块好多了。
支持库勾选上之后就可以使用易语言的多线程支持库了。
首先看用易语言多线程支持库创建线程的命令:启动线程:
命令名:启动线程
创建并启动一条线程,可重复使用以创建多条线程,成功返回真,失败返回假。
参数 数据类型 说明 参数<1>的名称为“欲执行的子程序” 子程序指针(SubPtr) 本参数提供创建线程时欲启动的子程序,根据是否需要传递参数数据,该子程序必须没有或具有一个整数型参数,否则将出错。 参数数据 整数型(int) 可以被省略。本参数提供线程被启动时传递到欲启动子程序的整数数据。如果本参数未被省略,此时被启动子程序必须接收一个整数型参数,否则将出错。 线程句柄 整数型(int) ,可以被省略,提供参数数据时只能提供变量。如果提供了本参数,将向参数变量写入线程句柄(Windows下为HANDLE,Linux下为pthread_t),请在适当的时机关闭该句柄。如果不提供本参数接收线程句柄,内部将自动处理线程句柄。
用易语言多线程支持库启动一条线程(控制台程序下):
.版本 2.支持库 EThread.程序集 程序集1.程序集变量 线程句柄, 整数型.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行启动线程 (&子程序1, , 线程句柄)返回 (0) ' 可以根据您的需要返回任意数值.子程序 子程序1标准输出 (#标准输出设备, “线程已启动,线程句柄为:” + 到文本 (线程句柄))这时候子程序1 将不是在主线程中执行的,而是在线程句柄为552的新线程中执行,和主线程互不相关。
通过下面的代码可以方便我们理解多线程:
.版本 2.程序集 窗口程序集1.子程序 _按钮1_被单击子程序1 ().子程序 子程序1.局部变量 n, 整数型.计次循环首 (1000, n) 输出调试文本 (到文本 (n)).计次循环尾 ()按钮按下之后,循环不结束,界面是不能响应任何消息的额,也就是拖动点击什么的都没用,相当于卡死。
但是如果把按钮下调用的子程序1 ,改为
则窗口可以正常响应消息,因为创建了一条新的线程来执行子程序1,主线程可以继续处理窗口消息。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
易语言多线程之文本型参数传递易语言启动线程命令的第二个参数是整数型,传递整数型参数方便,可是文本型就不能直接传递了。碰到这种问题,很多新手会使用一些多线程模块来
易语言多线程之整数型参数传递易语言启动线程的时候第二个参数是传递给线程的参数,类型是整数型的,当然传递整数型参数会非常的简单,直接传递就可以了。.版本2.支持库
在易语言官方多线程支持库中提供线程同步的方法是用许可区。加入许可区之后可以防止多个线程同时访问公用变量是发生冲突。加入许可区的代码同时只能有一个线程访问,避免冲
详解Java中多线程异常捕获Runnable的实现1、背景:Java多线程异常不向主线程抛,自己处理,外部捕获不了异常。所以要实现主线程对子线程异常的捕获。2、
Java中CountDownLatch进行多线程同步详解CountDownLatch介绍在前面的Java学习笔记中,总结了Java中进行多线程同步的几个方法:1