• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 131, comments - 12, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            信號量控制同步多線程

            Posted on 2012-10-19 09:43 盛勝 閱讀(243) 評論(0)  編輯 收藏 引用
            void CMulThreadDlg::OnBnClickedButtonTheadsametime()
            {
            // TODO: 在此添加控件通知處理程序代碼
            CWinThread *p1=AfxBeginThread(thread1event,this,THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);
            //                             線程1                        優先級與主線程共同                 掛起線程直到RusumeThread
            p1->ResumeThread();
            eventto.SetEvent();//CEvent eventto
            CWinThread *p2=AfxBeginThread(thread2event,this,THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);
            p2->ResumeThread();
            }
            UINT thread1event( LPVOID pParam )
            {
            CMulThreadDlg *eve1=(CMulThreadDlg *)pParam;
            while (1)
            {
            WaitForSingleObject(eventto.m_hObject,INFINITE);
            /*
            hHandle:指定對象或事件的句柄;
            dwMilliseconds: 等待時間,以毫妙為單位,當超過等待時間時,此函數將返回。如果該參數設置為0,則該函數立即返回,如果設置為INFINITE,則該函數直到有信號才返回。
            */
            eve1->GetDlgItem(IDC_STATIC1)->SetWindowText("線程1打開");
            Sleep(5000);
            eve1->GetDlgItem(IDC_STATIC1)->SetWindowText("線程1關閉");
            eventto.SetEvent();
            if (1==m_stop1)
            {
            m_stop1=0;
            break;
            }
            }
            return 0;
            }
            UINT thread2event( LPVOID pParam )
            {
            CMulThreadDlg *eve2=(CMulThreadDlg *)pParam;
            while(1)
            {
            WaitForSingleObject(eventto.m_hObject,INFINITE);
            eve2->GetDlgItem(IDC_STATIC2)->SetWindowText("線程2打開");
            Sleep(4000);
            eve2->GetDlgItem(IDC_STATIC2)->SetWindowText("線程2關閉");
            eventto.SetEvent();
            if (1==m_stop2)
            {
            m_stop2=0;
            break;
            }
            }
            return 0;
            }
            void CMulThreadDlg::OnBnClickedButtonClosethread()
            {
            // TODO: 在此添加控件通知處理程序代碼
            m_stop1=1;
            m_stop2=1;
            }
            午夜人妻久久久久久久久| 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 日韩欧美亚洲综合久久 | 精品乱码久久久久久夜夜嗨| 亚洲AV无码久久| 无码人妻久久一区二区三区 | 久久婷婷国产麻豆91天堂| 欧美噜噜久久久XXX| 亚洲精品国产字幕久久不卡| 伊色综合久久之综合久久| 日韩AV毛片精品久久久| 亚洲人AV永久一区二区三区久久| 久久青青草原精品国产不卡| 91精品观看91久久久久久| 国产精久久一区二区三区| 国产精品久久久久一区二区三区| 国产高潮久久免费观看| 国内精品久久久久久久久| 久久综合精品国产一区二区三区| 老司机午夜网站国内精品久久久久久久久 | 国产成人无码精品久久久久免费 | 久久综合成人网| 精品一二三区久久aaa片| 婷婷伊人久久大香线蕉AV| 精品国产VA久久久久久久冰| 久久国产色AV免费观看| 999久久久国产精品| 午夜精品久久久久久久无码| 综合网日日天干夜夜久久| 久久久一本精品99久久精品66| 久久久青草久久久青草| 久久成人精品| 天天躁日日躁狠狠久久| 久久精品国产亚洲av日韩| 狠狠色丁香婷婷综合久久来来去| 久久久久一本毛久久久| 日韩AV无码久久一区二区| 99热精品久久只有精品| 综合久久国产九一剧情麻豆| 久久精品国产亚洲欧美| 欧美精品乱码99久久蜜桃|