Как передать аргумент в afxbeginthread
Я запускаю немодальное диалоговое окно, используя afxbeginthread. Я создал новый класс, полученный из Cwinthread и переопределил инициализацию, как показано ниже.
BOOL GuiThread::InitInstance(void)
{
CWinThread::InitInstance();
dialog *dial = new dialog;
this->m_pMainWnd = dial;
dial->Create(dialog::IDD);
dial->ShowWindow(SW_SHOWNORMAL);
return TRUE;
}
В моем основном потоке я создаю поток пользовательского интерфейса следующим образом.
GuiThread *gui = (GuiThread*)AfxBeginThread(RUNTIME_CLASS(GuiThread),THREAD_PRIORITY_NORMAL,0,NULL,NULL);
WaitForSingleObject(gui->m_hThread,INFINITE);
Мой вопрос, как я могу передать аргумент guithread. Я хочу передать строку. Как я могу это сделать?
1 ответ
Вы можете использовать флаг CREATE_SUSPENDED, чтобы создать объект потока без запуска потока, затем установить переменные-члены объекта потока и запустить поток:
GuiThread *gui = (GuiThread*)AfxBeginThread(RUNTIME_CLASS(GuiThread),THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL);
gui->m_sometext = sometext;
gui->ResumeThread();