等待線程結束的一種方式 自己記錄一下

	HANDLE  m_hThread_loopMS; 
    int Reader_Flag = 1;	//按鈕flag


/****************************************************************************/

//創建線程
	CString strOut = L"";

	switch (Reader_Flag)
	{
	case 1:
		//判斷線程是否關閉
		void mThread_close_falg();

		m_hThread_loopMS = CreateThread(NULL, 0, ReaderThread_loopMS, this, 0, NULL);
		SetDlgItemText(IDC_BUT_GETMSDATA_LOOP, L"暫停");
		Reader_Flag = 2;

		break;
	case 2: SuspendThread(m_hThread_loopMS);
		SetDlgItemText(IDC_BUT_GETMSDATA_LOOP, L"繼續");
		strOut.Format(L"***已暫停***");
		//	Show_Mage(strOut);
		Reader_Flag = 3;
		break;
	case 3: ResumeThread(m_hThread_loopMS);
		SetDlgItemText(IDC_BUT_GETMSDATA_LOOP, L"暫停");
		strOut.Format(L"***已恢復***");
		//	Show_Mage(strOut);
		Reader_Flag = 2;
		break;
	};

DWORD __stdcall     ReaderThread_loopMS(LPVOID lpParameter)
{}
/****************************************************************************/

    //等待線程結束 
	if (m_hThread_loopMS/*自定義的線程*/)
	{
		::WaitForSingleObject(this->m_hThread_loopMS, 0);
		m_hThread_loopMS = NULL;	
		
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章