AfxBeginThread - is it better to call it's SuspendThread() or something else...
Hello
I am wondering, which way is better to stop running the thread, for
example:
/************************************************************/
BOOL CNewDlg::OnInitDialog()
{
....
//calling the first thread
m_pThread[0] = ::AfxBeginThread(FirsThread,this,0,0,0,NULL);
//calling second thread - suspended
m_pThread[1] = ::AfxBeginThread(SecondThread,
this,0,0,CREATE_SUSPENDED,NULL);
}
/************************************************************/
//both functions of threads (FirstThread and SecondThread) has similiar
body:
UINT CNewDlg::FirstThread(LPVOID pParam) //and UINT
CNewDlg::FirstThread(LPVOID pParam)
{
CMyDlg* pMain = (CMyDlg*)pParam;
while(true)
{
pMain->TimeFun(); //this function gets time from CTime and displays
to screen
}
return 0;
}
/************************************************************/
So, when I want to use SecondThread, I suspend the FirstThread with
function ->SuspendThread() and I wake up SecindThread with function
->ResumeThread(); similarly I am doing it when I want to woke up
FirstThread and so on.
Huh, my question is: Is it better maybe to use a bool variable in
while() in function of thread or suspend it with SuspendFunction?
When variable will be true, the thread will be running, when false it
will stop.
I know that this option is available when I want to use for every time
FirstThread I must call the AfxBeginThread for this thread, because
when bool variable will be false, the thread will stop - the same for
SecondThread.
Cheers,
V