testThread WaitForSingleObject
2010-01-13 14:04
465 查看
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();
}
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();
}
相关文章推荐
- 赞!VC++编程创建远程线程式调用CALL_VirtualAllocEx_WriteProcessMemory_CreateRemoteThread_WaitForSingleObject
- TTimerThread和TThreadedTimer(都是通过WaitForSingleObject和CreateEvent来实现的)
- GetExitCodeThread WaitForSingleObject
- GetExitCodeThread(hThrd, &exitCode);WaitForSingleObject(hThrd,INFINITE);
- WaitForMultipleObjects、WaitForSingleObject、GetExitCodeThread
- ThreadPool.RegisterWaitForSingleObject
- ThreadPool基础之RegisterWaitForSingleObject
- 为什么Mutex,Event,Thread句柄都是可以waitforsingleobject?
- ThreadPool基础之RegisterWaitForSingleObject
- 每日20行之3~~~ThreadPool之RegisterWaitForSingleObject 自动定时执行(可循环)
- ThreadPool.RegisterWaitForSingleObject 设置等待超时事件
- ThreadPool.RegisterWaitForSingleObject使用方法 推荐
- CreateRemoteThread 和 WaitForSingleObject 的奇怪问题
- WaitForSingleObject、WaitForMultipleObjects、CreateThread .
- 关于ThreadPool.RegisterWaitForSingleObject和WaitHandle的应用介绍 【转】
- 关于ThreadPool.RegisterWaitForSingleObject和WaitHandle的应用介绍
- Waitforsingleobject 函数的用法
- WaitForSingleObject 的内部实现原理
- CMutex、CCriticalSection、CSemaphore、CEvent、WaitForSingleObject 的小例子
- 在主线程中慎用WaitForSingleObject (WaitForMultipleObjects) --代替方法:MsgWaitForMultipleObjects