char g_Array[10];
CEvent eventWriteD;
UINT WriteW(LPVOID pParam)
{
CEdit *pEdit = (CEdit*)pParam;
pEdit->SetWindowText("");
for(int i=0;i<10;i++)
{
g_Array[i] = 'W';
pEdit->SetWindowText(g_Array);
Sleep(1000);
}
eventWriteD.SetEvent();
return 0;
}
UINT WriteD(LPVOID pParam)
{
CEdit *pEdit = (CEdit*)pParam;
pEdit->SetWindowTextA("");
WaitForSingleObject(eventWriteD.m_hObject,INFINITE);
memset(g_Array,0,sizeof(g_Array));
DWORD dwC;
CString str;
for(int i=0;i<10;i++)
{
g_Array[i] = 'D';
pEdit->SetWindowTextA(g_Array);
Sleep(1000);
}
return 0;
}
void CtestThreadDlg::OnBnClickedOk()
{
CWinThread *pWriteW = AfxBeginThread(WriteW,&m_ctrlW,THREAD_PRIORITY_NORMAL,0,0,0);
pWriteW->ResumeThread();
CWinThread *pWriteD = AfxBeginThread(WriteD,&m_ctrlD,THREAD_PRIORITY_NORMAL,0,0,0);
pWriteD->ResumeThread();
}
本文介绍了一个使用C++实现的线程同步示例,通过两个线程分别写入字符到编辑框,展示了如何利用事件对象进行线程间的同步,确保线程安全地修改共享资源。
1488

被折叠的 条评论
为什么被折叠?



