现在的位置: 首页 > 综合 > 正文

线程开发随记

2018年06月05日 ⁄ 综合 ⁄ 共 537字 ⁄ 字号 评论关闭

1 将程序改为线程运行:

CSerial
{
protected:
    CWinThread* m_pThreadMonitor;
    void ThreadFunc1();

public:
    void ProFunc1();
}

UINT Func1Proc(LPVOID wParam)
{
    CSerial *pSerial = (CSerial *)wParam;
    pSerial->ProFunc1();

    return 0;
}

CSerial::ThreadFunc1()
{
    m_pThreadMonitor = AfxBeginThread(Func1Proc,this);
}


CSerial::~CSerial()
{
	if( m_pThreadMonitor != NULL )
	{
		m_pThreadMonitor->PostThreadMessage(WM_QUIT,0,0);
		if (::WaitForSingleObject(m_pThreadMonitor->m_hThread, 100) == WAIT_TIMEOUT)
		{
			::TerminateThread(m_pThreadMonitor->m_hThread, 0);
			delete m_pThreadMonitor;
		}
		m_pThreadMonitor	= NULL;
	}
}

2 多线程开发(信号量)

抱歉!评论已关闭.