为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

基于消息循环的多线程例程源码

三叶资源网 2022-05-13 14:03:34 易语言例程 1007 ℃ 0 评论

想法来自 网易的nbase库 不过网易的nbase库是自写了消息循环  我是直接用了 winapi


每条线程都有属于自己的消息循环, 通过 PostThreadMessage API 让指定线程 执行指定的消息


当没有消息时候, 会阻塞线程直到 获取到消息


目前唯一的缺点: 没有办法接管主线程的消息循环 无法实现 子线程通知主线程调用某个函数


下面是说明(模块也有带说明):


OnInit 挂接一个函数 为本类管理线程的初始化函数 (当线程被创建后, 会第一时间调用挂接的函数)

参数1: 子程序指针


OnClose 挂接一个函数 为本类管理线程的关闭函数 (当线程即将被关闭前, 会调用挂接的函数)

参数1: 子程序指针


Create 创建线程 (创建出来的线程由本类管理生命周期)


PostTask_0 投递任务 (向本类管理的线程投递一个任务)

参数1: 子程序指针 (为你想让线程执行的某个子程序, 子程序不能带有参数)


PostTask_1 投递任务 (向本类管理的线程投递一个任务)

参数1: 子程序指针 (为你想让线程执行的某个子程序, 子程序可以带有参数但是只能是一个)


PostRepeatedTask 投递定时任务 (向本类管理的线程投递一个定时任务) 定时任务为循环任务 线程会不停调用 所投递过来的子程序

参数1: 子程序指针 (为你想让线程执行的某个子程序, 子程序不能带有参数)

参数2: 执行的时间 (假设1000, 那么就是每隔1s执行一次)


UnPostRepeatedTask 取消投递的定时任务

参数1: 参数1: 子程序指针 (为之前投递定时任务的子程序指针)


Close 关闭当前线程 并通知释放线程资源


关于源码中的 MessageLoop 这个函数 其实是可以放在类外的 但是还是要执行转换  把当前类的指针传到 MessageLoop  函数里面 执行转换 这样才能调用类中的函数


最后感觉写出来没有什么用 因为没有办法动态的创建类 无法控制创建出来的数量 就当玩具了 有一说一 易语言的类真迷惑

基于消息循环的多线程例程源码

@小诺0号


文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
百度推广引流软件拼多多滑块验证永辉生活登陆汇编代码Access版获取网络IP地址DNS博彩数据BitBlt汇编版工控之交通灯QQ取本机cookieQQ好友批量点名片赞服务器QQ音乐加速器记牌器PDO数据自动同意进群京医通API创建时钟英文智能提示GDI图像处理
最新评论