VC++ 如何创建一个线程并传递参数

本文档详细介绍了如何在VC++中创建一个工作线程,包括使用AfxBeginThread函数,传递参数到线程函数,以及线程函数的定义和返回值。示例代码展示了如何从主函数传递参数给线程函数,并在线程函数中修改参数的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  近来做个项目需要写点程序,比较烦.net写的老是需要背着.net包走,所以准备用VC++来写,其中用到了线程方面的知识这里记录下来以备后用。

  创建一个工作线程十分简单,只需要两步你的线程就能跑了:(1)实现线程函数和(2)开始线程。不需要由CWinThread派生类,你可以不加修改地使用CWinThread。下面我们来看看如何开始一个线程。  
   
  AfxBeginThread有两种形式,一种是用来创建用户界面线程的,另一种就是用来创建工作线程的。为了开始执行你的线程,只需要向AfxBeginThread提供下面的参数就可以了:  
   
  线程函数的地址    
  传送到线程函数的参数    
  (可选的)线程的优先级,默认的是平常的优先级,如果希望使用其它优先级请参阅::SetThreadPriority    
  (可选的)线程的堆栈大小,默认的大小是和创建线程的堆栈一样大    
  (可选的)如果用户创建的线程在开始的时候在挂起态,而不在运行态,可以设置为CREATE_SUSPENDED    
  (可选的)线程的安全属性,默认的是和父线程的访问权限一样,有关安全信息的格式,请参阅SECURITY_ATTRIBUTES    
  AfxBeginThread为用户创建并初始化一个CWinThread对象,运行这个对象,并返回它的地址,这样通过这个地址用户就可以找到它了。在这一过程中还要进行许多检查。这一切都不用你操心。那么下面我们来看看线程函数怎么写。线程函数定义了线程要做什么,在进入这个函数的时候线程开始,退出的时候线程结束。这个函数必须是下面的形式:  
   
  UINT   MyControllingFunction(   LPVOID   pParam &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值