Как передать аргумент в 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();
Другие вопросы по тегам