VS2010下的多线程编程入门参考例程

/*                                                                                                        
 * File         : main.c
 * Description  :
 * Author       :
 * Copyright    :
 * ----------------------
 * History
 * Rev  : 0.1
 * Date : 2012-08-15
 *
 * create.
 * ----------------------
 */

//---------------Include files-------------------------//
#include <Windows.h>
#include <stdint.h>
#include <iostream>
using namespace std;

//---------------Type Defines-------------------------//
typedef uint32_t USER_THREAD_DATA_TYPE;  //定义用户线程数据类型

//---------------Function Prototype-------------------------//
DWORD WINAPI ThreadProc(LPVOID lpParam); //线程处理函数

/* 
 * === FUNCTION =========================================
 * Name         : main
 * Description  : 主函数
 * =====================================================
 */
int main()
{
 USER_THREAD_DATA_TYPE pThreadData = 5;
 HANDLE pThreadHandle = CreateThread(NULL, 0, ThreadProc, &pThreadData, 0, NULL); //创建线程

 if(pThreadHandle == NULL)
 {
  cout<<"线程创建失败!"<<endl;
 }
 else
 {
  while(pThreadData)
  {
   cout<<"剩余"<<pThreadData--<<"秒"<<endl;
   Sleep(1000); //延时1秒
  }
  WaitForMultipleObjects(1, &pThreadHandle, TRUE, INFINITE); //等待线程退出
  CloseHandle(pThreadHandle);  //关闭线程
  cout<<"线程退出!"<<endl;
 }
  
 return 0;
}

/* 
 * === FUNCTION =========================================
 * Name         : ThreadProc
 * Description  : 线程处理函数
 * =====================================================
 */
DWORD WINAPI ThreadProc( LPVOID lpParam )
{
 USER_THREAD_DATA_TYPE *temp = (USER_THREAD_DATA_TYPE *)lpParam;

 cout<<"进入线程,等待退出"<<endl;
 while(*temp); //等待参数值为0

 return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值