如何将参数传递给afxbeginthread

时间:2014-05-22 05:02:24

标签: visual-c++ mfc dialog afx

我使用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。我想传递一个字符串。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用CREATE_SUSPENDED标志创建线程对象而无需启动线程,然后设置线程对象的成员变量并启动线程:

GuiThread *gui = (GuiThread*)AfxBeginThread(RUNTIME_CLASS(GuiThread),THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL);
gui->m_sometext = sometext;
gui->ResumeThread();