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();
}