C++多线程编程之一(二)

2014-11-24 03:15:44 · 作者: · 浏览: 1
ile 是一个非常重要的修饰符。


编写线程函数:


void ThreadFunc()


{


CTime time;


CString strTime;


m_bRun=TRUE;


while(m_bRun)


{


time=CTime::GetCurrentTime();


strTime=time.Format(%H:%M:%S);


::SetDlgItemText(AfxGetMainWnd()->m_hWnd,IDC_TIME,strTime);


Sleep(1000);


}


}


该线程函数没有参数,也不返回函数值。只要m_bRun为TRUE,线程一直运行。


双击IDC_START按钮,完成该按钮的消息函数:


void CMultiThread1Dlg::OnStart()


{


// TODO: Add your control notification handler code here


hThread=CreateThread(NULL,


0,


(LPTHREAD_START_ROUTINE)ThreadFunc,


NULL,


0,


&ThreadID);


GetDlgItem(IDC_START)->EnableWindow(FALSE);


GetDlgItem(IDC_STOP)->EnableWindow(TRUE);


}


双击IDC_STOP按钮,完成该按钮的消息函数:


void CMultiThread1Dlg::OnStop()


{


// TODO: Add your control notification handler code here


m_bRun=FALSE;


GetDlgItem(IDC_START)->EnableWindow(TRUE);


GetDlgItem(IDC_STOP)->EnableWindow(FALSE);


}


编译并运行该例程,体会使用Win32 API编写的多线程。

代码及教程下载地址 http://download.csdn.net/detail/xdrt81y/6692301