<email@example.com> wrote in message
Sorry for asking this doubt,in my timer call back,creating 3 thread
for reading file etc..critical section using for synchronization(i did
just enter critical section),i have to continue my work in timer until
thread finish loading that file .
just i am using Global variable(static member of gloabalclass) to
check whether this file opened or not,i believe this is not good way
to do it,(must i use CEvent or something?)anybody can explain what is
the best way to do it?syntax would be great helpful to me..
The best way to signal another thread depends on what kind of thread needs
If the main thread needs to know when the file is loaded then you should use
PostMessage to a window in the main thread. This will keep the GUI
responsive during the wait. There is an example here:
http://vcfaq.mvps.org/mfc/index.htm The same technique can be used with
PostThreadMessage to a thread with no GUI but with a message pump.
But if you have a worker thread that needs to know when the file is loaded
then the worker thread should call WaitForSingleObject to wait. This
suspends the thread, which is much more efficient than polling a variable.
The thread that is opening the file would call SetEvent to signal when the
file open is complete. That makes the WaitForSingleObject call return so the
worker thread can continue.
Scott McPhillips [VC++ MVP]