下你所需,载你所想!
汇集开发技术源码资料

基于消息循环的多线程

:10.602KB :1 :2022-09-17 14:44:10

部分简介

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

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

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

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

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

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

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

PostTask_0 投递任务 (向本类管理的线程投递一个任务)
参数1: 子程序指针 (为你想让线程执行的某个子程序, 子程序不能带有参数)

PostTask_1 投递任务 (向本类管理的线程投递一个任务)
参数1: 子程序指针 (为你想让线程执行的某个子程序, 子程序可以带有参数但是只能是一个)

PostRepeatedTask 投递定时任务 (向本类管理的线程投递一个定时任务) 定时任务为循环任务 线程会不停调用 所投递过来的子程序
参数1: 子程序指针 (为你想让线程执行的某个子程序, 子程序不能带有参数)
参数2: 执行的时间 (假设1000, 那么就是每隔1s执行一次)

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

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

基于消息循环的多线程

热门推荐

相关文章