我使用afxbeginthread运行无模式对话框。我创建了一个从Cwinthread派生的新类,并重写了initinstance,如下所示。
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。我想传递一个字符串。我怎样才能做到这一点?
答案 0 :(得分:0)
您可以使用CREATE_SUSPENDED标志创建线程对象而无需启动线程,然后设置线程对象的成员变量并启动线程:
GuiThread *gui = (GuiThread*)AfxBeginThread(RUNTIME_CLASS(GuiThread),THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL);
gui->m_sometext = sometext;
gui->ResumeThread();