vc++創建多線程應用


構建線程參數結構體:

typedef struct 
{
    int nIndex;
    HANDLE hThread;
    int param1;
          ...
}ThreadParam;

創建線程數組:

ThreadParam threadParam[16];

創建一個線程,用來創建線程:

    CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)StartThread, threadParam, NULL, NULL);

創建線程函數體:

   //初始化線程
    for(int i = 0; i < 16; i++)
    {
        //初始化事件對象
        g_hEvent[i] = CreateEvent(NULL,//默認安全屬性
            NULL,//設置為自動重置
            FALSE,//初始狀態為無信號
            NULL);//匿名
        //初始化索引值
        threadParam[i].nIndex = i; 
        threadParam[i].hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadFunc,(LPVOID)&threadParam[i], NULL, NULL);
    }

線程函數:

int WINAPI TheadFunc(LPVOID lpParam)
{
    ThreadParam*  threadParam = (ThreadParam *) lpParam;
    int nIndex = threadParam->nIndex;
    int dwRtn;
    while(true)
    {
       WaitForSingleObject(g_hEvent[nIndex], INFINITE);
       do something ...
    }
    return dwRtn;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM