一、定义全局变量
CMutex cMutex(FALSE,NULL);
二、启动线程
AfxBeginThread(thread1,this);
AfxBeginThread(thread2,this);
二、线程函数
static UINT thread1(LPVOID pParam)
{
CMutexSynchDlg *pdlg=(CMutexSynchDlg*)pParam;
//char buf[MAX_PATH];
CString str;
if(pdlg->bmutex==TRUE)
cMutex.Lock();
for(int i=0;i<20;i++)
{
pdlg->m_result.GetWindowText(str);
str+="A";
pdlg->m_result.SetWindowText(str);
Sleep(200);
}
cMutex.Unlock();
return 0;
}
static UINT thread2(LPVOID pParam)
{
CMutexSynchDlg *pdlg=(CMutexSynchDlg*)pParam;
CString str;
if(pdlg->bmutex==TRUE)
cMutex.Lock();
for(int i=0;i<20;i++)
{
pdlg->m_result.GetWindowText(str);
str+="B";
pdlg->m_result.SetWindowText(str);
Sleep(200);
}
cMutex.Unlock();
return 0;
}