在外部用了waitforsignalobject后, 线程中SetDlgItemText就没有返回,无法执行到后面z那边的语句,是为啥?消息没发出去?
void ThreadFunc(int x)
{
CString strCnt;
int i, z;
for (i = x; i > 0; --i)
{
strCnt.Format(_T("%d"), i);
::SetDlgItemText(AfxGetApp()->m_pMainWnd->m_hWnd, IDC_COUNT, strCnt);
z = i;
++z;
}
}
void CMultiThread2Dlg::OnBnClickedStart()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
int x = m_nCount;
hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadFunc, (VOID*)x, 0, &ThreadID);
GetDlgItem(IDC_START)->EnableWindow(FALSE);
WaitForSingleObject(hThread, INFINITE);
GetDlgItem(IDC_START)->EnableWindow(TRUE);
}