VS2010 线程显示时间调试通过

HANDLE hThread;   

DWORD ThreadID; 



volatile BOOL m_bEndTread=FALSE; // 用于控制线程的终止


void ThreadFunc(int int_param)//不需要在头文件中定义,否则出错
{    
    CTime time;    
    CString strTime;  
AfxMessageBox(_T("线程即将运行!"));
    while(TRUE)    
   { 

TRACE("Thread started\n");
        time=CTime::GetCurrentTime();    //取得现在的时间    
        strTime=time.Format("%H:%M:%S");        
        ::SetDlgItemText(AfxGetApp()->m_pMainWnd->m_hWnd,IDC_TIME,strTime);    //显示时间    
        Sleep(1000);    //每秒更新一次
    }
// m_bEndTread = FALSE;
//    while(!m_bEndTread);
}


void CthreadDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
Sleep(2000);
    MessageBox(_T("线程即将运行!"));
//hThread=AfxBeginThread(ThreadFunc,(LPVOID)0, THREAD_PRIORITY_NORMAL,
 //                  0, CREATE_SUSPENDED);
   hThread=CreateThread(     //hThread变量保存线程句柄,我们需要在头文件中添加
        NULL,        
        0,        
        (LPTHREAD_START_ROUTINE)ThreadFunc, //ThreadFunc这个函数,待会我们再创建。    
        NULL,        
        0,        
        &ThreadID);    //ThreadID 线程的ID,也需要在头文件中追加*/
}
//(LPTHREAD_START_ROUTINE)


void CthreadDlg::OnBnClickedCancel()
{
// TODO: 在此添加控件通知处理程序代码
m_bEndTread = TRUE; //结束线程    


    MessageBox(_T("ByeBye"));
CDialogEx::OnCancel();
}

你可能感兴趣的:(VS2010 线程显示时间调试通过)