2012/8/21 young
I have a MFC application which use boost thread. I have created several threads like m_pReadThread / m_pProcessThread / m_pWriteThread
m_pProcessThread = boost::shared_ptrboost::thread(new boost::thread(boost::bind(&CMFCDlg::ProcessThreadBoost, this)));
in each thread, the thread function structure looks like: { init; while(run == true) { // set break point here ... } cleanup code; // set break point here }
I set break point When I run my application, one of the thread only reach the first break point once. The second break point never reached. What might be the problem?
Since the code is part of a big project. I can not put code here.
Maybe your program ends before your threads end? For example I think this will terminate your threads before they finish: int main() { thread* a = new thread(...); thread* b = new thread(...); } And what you need is something like: int main() { thread* a = new thread(...); thread* b = new thread(...); a->join(); b->join(); } Regards, Kris