等待线程结束的一种方式 自己记录一下

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

 

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