Thread Communication in between UI and working thread
Hi, I'm using a SDI-based MFC application. and to create a working
thread, I add a static member function to CMainFrame. Then, I want to
know how does the working thread report some message to CMainFrame, like
a CString.
here is my method I want to use(pseudocode):
//-------------Class
class CMainFrame : public CFrameWnd
{
...
static DWORD WINAPI ThreadProc(void* pParameter);
}
//--------------Thread
DWORD CMainFrame::ThreadProc(void* pParameter){
CMainFrame* This = (CMainFrame*) pParameter;
...
CString * ptrString = new CString("xxxx") ;
...
This->PostMessage(WM_XXX, (unsigned int)ptrString, 0);
}
//----------------Message handler
afx_msg LRESULT CMainFrame::OnXXXX(WPARAM wParam, LPARAM lParam)
{
CString * ptr = (CString *)wParam;
......
return 0;
}
Note: This is the pointer to CMainFrame.
Is it a good method? Or, there are other better alternative. Since that
the Postmessage can only take two parameters, how can I pass a string or
a block of data. Are there any tutorials cover this topic? Thanks!