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