用易语言写多线程应用要么使用多线程相关的api,支持库或模块,其实那些支持库或模块也都是封装的api,但是要比api使用方便。
总体来说易语言官方的多线程支持库要比一些杂七杂八的模块好多了。
支持库勾选上之后就可以使用易语言的多线程支持库了。
首先看用易语言多线程支持库创建线程的命令:启动线程:
命令名:启动线程
创建并启动一条线程,可重复使用以创建多条线程,成功返回真,失败返回假。
参数 | 数据类型 | 说明 |
参数<1>的名称为“欲执行的子程序” | 子程序指针(SubPtr) | 本参数提供创建线程时欲启动的子程序,根据是否需要传递参数数据,该子程序必须没有或具有一个整数型参数,否则将出错。 |
参数数据 | 整数型(int) | 可以被省略。本参数提供线程被启动时传递到欲启动子程序的整数数据。如果本参数未被省略,此时被启动子程序必须接收一个整数型参数,否则将出错。 |
线程句柄 | 整数型(int) | ,可以被省略,提供参数数据时只能提供变量。如果提供了本参数,将向参数变量写入线程句柄(Windows下为HANDLE,Linux下为pthread_t),请在适当的时机关闭该句柄。如果不提供本参数接收线程句柄,内部将自动处理线程句柄。 |
用易语言多线程支持库启动一条线程(控制台程序下):
这时候子程序1 将不是在主线程中执行的,而是在线程句柄为552的新线程中执行,和主线程互不相关。
通过下面的代码可以方便我们理解多线程:
按钮按下之后,循环不结束,界面是不能响应任何消息的额,也就是拖动点击什么的都没用,相当于卡死。
但是如果把按钮下调用的子程序1 ,改为
则窗口可以正常响应消息,因为创建了一条新的线程来执行子程序1,主线程可以继续处理窗口消息。
新闻热点
疑难解答