一個有關綫程結束的問題。
我想在一個dialog啓動時開始兩個綫程,在dialog被関掉時関掉綫程。
//在simulatorDlg.cpp中啓動兩個綫程,兩個綫程都是.c文件。
void CSimulatorDlg::StartThread()
{
AfxBeginThread(SimTask, NULL); // Start Thread Simulator
AfxBeginThread(UITask, NULL); // Start Thread UI
AfxMessageBox("This Simulator have been started!");
}
……
//simtask.c。綫程SimTask
unsigned int SimTask()
{
……
}
//uitask.c。綫程UITask
unsigned int UITask()
{
……
}
可以在兩個.c程序裏面設置讓綫程自己break並且return,相當於綫程安全退出。
但是如果綫程是一個無限循環,不會自己break退出,我怎麽才能在関掉對話框時進行一種操作來関掉綫程?
void CSimulatorDlg::OnDestroy()
{
怎麽在這個裏面保證對話框結束時綫程被関掉?
CDialog::OnDestroy();
}
我知道有一個AfxEndThread,但是這個函數好像只能在綫程内部自己使用,而不能在綫程外使用。