多线程编程

来源:互联网 发布:感恩节由来 知乎 编辑:程序博客网 时间:2024/05/18 00:44
static UINT     ThreadFun( LPVOID pParame);              //监听线程UINT CDlg::ThreadFun( LPVOID pParame ){    //开始线程...    CDlg * pMainDlg= (CDlg *) pParame;    while(m_bThread)    {        if (!m_bRunThread)        {            Sleep(40);            continue;        }        // 开始线程工作        Sleep(3000);    }    return 0;}static BOOL                         m_bThread;    CWinThread *                        m_pThreadWin[2];    HANDLE                              m_hHandleThread[2];// 启动线程    m_bThread = TRUE;    m_bRunThreadIDCard =TRUE;    m_pThreadWin[0] = AfxBeginThread(ThreadFun, this,0,0,0,0);    m_pThreadWin[0]->m_bAutoDelete= FALSE;    m_hHandleThread[0] = m_pThreadWin[0]->m_hThread;    m_bThread = FALSE;    Sleep(200);    DWORD dwThreadRetVal = 0;    for(;;)    {        Sleep(100);        dwThreadRetVal = WaitForMultipleObjects(            1,m_hHandleThread,true, 40);        if (dwThreadRetVal != WAIT_TIMEOUT)        {            break;        }    }    for (int iThreadCount = 0; iThreadCount < 1; iThreadCount++)    {        delete m_pThreadWin[iThreadCount];    }