/*
* 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;
}