1

我正在使用 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);

我的问题是:如何将参数传递给 GUI 线程?我想传递一个字符串:我该怎么做?

4

1 回答 1

-1

您可以使用 CREATE_SUSPENDED 标志在不启动线程的情况下创建线程对象,然后设置线程对象的成员变量并启动线程:

GuiThread *gui = (GuiThread*)AfxBeginThread(RUNTIME_CLASS(GuiThread),THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL);
gui->m_sometext = sometext;
gui->ResumeThread();
于 2014-05-22T13:02:04.783 回答