Re: c++ event sink
"Carmen Sei" <fatwallet951@yahoo.com> wrote in message
news:93q2041troq411hmvcgd57pbv3qtsno891@4ax.com...
are you meaning I should create a new thread from the primary thread
currently running?
then I pass a pointer of status to that thread like -
==============================
int * status;
// a new thread get initialized and pass a pointer of the status
// to the new thread
ThreadX * o1 = new ThreadX( &status );
// create the thread using _beginthreadex()
hth1 = (HANDLE)_beginthreadex(
NULL, // security
0, // stack size
ThreadX::ThreadStaticEntryPoint,
o1, // arg list
CREATE_SUSPENDED, // so we can later call ResumeThread()
&uiThread1ID
);
// after created the thread, primary thread continue execute
// primary thread keeps checking the status
// (integer value 1 = finish, integer value 0 = not finish)
==============================
ThreadX::ThreadX( int * status )
{
// if the XML thread finish loading data
// may be after 10 min, the status flag is set to 1 = finished
currentstatus = status ;
}
Is your program a console program, or a windowed program? If it is a
windowed program then it must contain a message pump. So the way to signal
the main thread is to pass it a message. First pass an HWND to the
secondary thread. When the secondary thread is ready to signal the main
thread it should do so with PostMessage to the HWND. Use a custom message
you define like this:
#define UWM_THREAD_DONE (WM_APP + 1)
PostMessage(hwnd, UWM_THREAD_DONE, anyparam, anyparam);
--
Scott McPhillips [VC++ MVP]