关于多线程的异步技术问题
新手请教,多线程中的异步技术,是不是相对于同步技术来说,除去如事件同步等的代码,就是异步了?
如下是同步技术代码
UINT ShowFront(LPVOID pParam)
{
CEdit *pEdit=(CEdit*)pParam; //消息参数pParam传递编辑框控件的句柄
pEdit->SetWindowText("");
critical_section.Lock();//锁定临界区
for(int i=0;i<10;i++)
{
itoa(i,&Array[i],10);
pEdit->SetWindowText(Array);
Sleep(1000);
}
critical_section.Unlock();
return 0;
}
UINT ShowBack(LPVOID pParam)
{
CEdit* pEdit=(CEdit*)pParam; //消息参数pParam传递编辑框控件的句柄
pEdit->SetWindowText("");
critical_section.Lock();//锁定临界区
for(int i=0;i<10;i++)
{
itoa(9-i,&Array[i],10);
pEdit->SetWindowText(Array);
Sleep(1000);
}
critical_section.Unlock();
return 0;
}
void CTextDlg::OnFront() //点击顺序事件
{
// TODO: Add your control notification handler code here
CWinThread *pFront=AfxBeginThread(ShowFront,
&m_front,
THREAD_PRIORITY_NORMAL,
0,
CREATE_SUSPENDED);
pFront->ResumeThread();
}
void CTextDlg::OnBack()
{
// TODO: Add your control notification handler code here
CWinThread *pFront=AfxBeginThread(ShowBack,
&m_back,
THREAD_PRIORITY_NORMAL,
0,
CREATE_SUSPENDED);
pFront->ResumeThread();
}
如下是异步技术代码
UINT ShowFront(LPVOID pParam)
{
CEdit *pEdit=(CEdit*)pParam; //消息参数pParam传递编辑框控件的句柄
pEdit->SetWindowText("");
for(int i=0;i<10;i++)
{
itoa(i,&Array[i],10);
pEdit->SetWindowText(Array);
Sleep(1000);
}
return 0;
}
UINT ShowBack(LPVOID pParam)
{
CEdit* pEdit=(CEdit*)pParam; //消息参数pParam传递编辑框控件的句柄
pEdit->SetWindowText("");
for(int i=0;i<10;i++)
{
itoa(9-i,&Array[i],10);
pEdit->SetWindowText(Array);
Sleep(1000);
}
return 0;
}
void CTextDlg::OnFront() //点击顺序事件
{
// TODO: Add your control notification handler code here
CWinThread *pFront=AfxBeginThread(ShowFront,
&m_front,
THREAD_PRIORITY_NORMAL,
0,
CREATE_SUSPENDED);
pFront->ResumeThread();
}
void CTextDlg::OnBack()
{
// TODO: Add your control notification handler code here
CWinThread *pFront=AfxBeginThread(ShowBack,
&m_back,
THREAD_PRIORITY_NORMAL,
0,
CREATE_SUSPENDED);
pFront->ResumeThread();
}