工作线程AfxBeginThread的使用

简介: 工作线程通常用来执行一些后台任务,如:数据计算、后台杀毒等等。因为不需要创建窗口和处理用户消息,编写比较容易,在程序中只要调用AfxBeginThread 函数就可以创建并启动一个工作线程了。 AfxBeginThread 的原型如下: CWinThread *AfxBeginThread(  ...

工作线程通常用来执行一些后台任务,如:数据计算、后台杀毒等等。因为不需要创建窗口和处理用户消息,编写比较容易,在程序中只要调用AfxBeginThread 函数就可以创建并启动一个工作线程了。

AfxBeginThread 的原型如下:

CWinThread *AfxBeginThread( 
    AFX_THREADPROC pfnThreadProc,                             //指向控制函数的地址   
    LPVOID pParam,                                                       //指向传递给控制函数的参数   
     int   nPriority  /* = THREAD_PRIORITY_NORMAL */  ,       //指定线程的优先级   
    UINT nStackSize  /* = 0 */  ,                                        //指定堆栈大小   
    DWORD dwCreateFlags  /* = 0 */  ,                              //创建标识   
    LPSECURITY_ATTRIBUTES lpSecurityAttrs  /* = NULL */       //安全属性   
)  

从上面参数可以看到,只有前两个参数是必须的,其余参数都使用默认的话,就可创建了一个具有普通优先级别的线程。

示例:编写一个应用程序,当在程序窗口按下鼠标左键,启动一个线程,该线程可以在屏幕上显示一个信息框。
1.新建单文档程序;
2.在视图类CPP文件添加一个准备作为线程的函数:

UINT MessageThread(LPVOID pParam) 

    LPTSTR    pMessage = (LPTSTR)pParam; 
    CWnd *pMainWnd = AfxGetMainWnd(); 
    ::MessageBox(pMainWnd->m_hWnd, pMessage, _T( "Thread Message"  ), MB_OK); 
     return    0  
}  

3.在视图类的鼠标左键消息响应函数中创建和启动线程:

void   CThreadTestView::OnLButtonDown(UINT nFlags, CPoint point) 

    AfxBeginThread(MessageThread, _T( "Greetings from your thread!"  )); 
    CView::OnLButtonDown(nFlags, point); 
}  

程序运行结果:

目录
相关文章
|
存储 Prometheus 监控
Prometheus 的扩展与集成
【8月更文第29天】Prometheus 是一款非常强大的监控系统,它不仅能够采集和存储时间序列数据,还提供了丰富的生态系统来扩展其功能。本文将介绍如何通过自定义 Exporters 和集成中间件(如 Thanos)来扩展 Prometheus 的能力。
359 1
|
安全 网络协议 网络安全
端口转发:解锁网络访问的新维度
端口转发技术,简化网络数据流,用于家庭至企业服务器场景。它隐藏内部网络服务,提供远程访问、个人网站公开、NAT穿透及安全的VPN连接。设置涉及路由器管理界面,添加转发规则,但需注意安全风险,仅开放必要端口并加强内部安全措施。了解和善用端口转发,提升网络服务可达性与安全性。
706 5
|
10月前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)入门
【10月更文挑战第41天】在人工智能的璀璨星空下,卷积神经网络(CNN)如一颗耀眼的新星,照亮了图像处理和视觉识别的路径。本文将深入浅出地介绍CNN的基本概念、核心结构和工作原理,同时提供代码示例,带领初学者轻松步入这一神秘而又充满无限可能的领域。
|
C++
C++ PCL SACSegmentationFromNormals setAxis 轴向的选择
C++ PCL SACSegmentationFromNormals setAxis 轴向的选择
222 2
|
Prometheus 监控 Kubernetes
青团社:亿级灵活用工平台的云原生架构实践
青团社是国内领先的一站式灵活用工招聘服务企业,灵活用工行业的 Top1。青团社于 2013 年在杭州成立,业务已经覆盖全国,在行业深耕 10 年。我的分享将分为以下三部分:青团社架构演进的历程、青团社如何实现云原生、总结与展望。
262717 96
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的社区垃圾分类管理平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的社区垃圾分类管理平台附带文章源码部署视频讲解等
124 0
|
算法 C#
winform车牌识别源码(纯算法)
使用C#和Winform开发的纯算法车牌识别系统,无需依赖外部框架。通过去雾、灰度化、均衡化、中值滤波等步骤实现车牌定位和识别。包含详细步骤及源码,适合学习研究。演示视频:[BV1yq4y1a7cb](https://www.bilibili.com/video/BV1yq4y1a7cb/?spm_id_from=333.337.search-card.all.click&vd_source=6d6d1b4c92d36f8d9ca8a23a286bae20)。
|
存储 消息中间件 API
数据湖paimon入门指南
数据湖paimon入门指南
数据湖paimon入门指南
|
存储 分布式计算 NoSQL
支持 Flink/Gluten/优雅升级...Celeborn0.3.0 介绍
本文介绍 Celeborn 新发布的 0.3.0 版本的重要 Feature,包括但不限于:支持 Flink,支持 Native Spark(Gluten),快速优雅升级,支持 HDFS 等。
936 0
支持 Flink/Gluten/优雅升级...Celeborn0.3.0 介绍
|
存储 运维 NoSQL
深入理解Redis集群模式、协议、元数据维护方式
深入理解Redis集群模式、协议、元数据维护方式
579 0