thread confusion
John K. Hohm
jhohm at acm.org
Wed Aug 21 08:56:54 CDT 2002
Thus spake Bill Medland:
[...]
> I added a couple of MessageBox calls in the source of the control's code.
> While the OCX was loading the "before" and "after" message boxes were
> displayed as expected. However once the OCX was up and I pulled down the
> dropdown list the "before" message box popped up TWICE and you had to say
> OK
> to them in the correct order to get the pair of "after" boxes. So I
> included GetCurrentThreadID in the message they displayed, thinking that we
> now had two threads. But both had (or appeared to have) the same thread
> ID.
> So I turned on the dialog warnings and, yes, the second call to MessageBox
> was occurring while the first was still executing.
>
> Anyone know what is going on there?
I suspect you are calling MessageBox() during processing of a message sent via
SendMessage() during processing of another message posted to the control's
queue. That is typically a recipe for confusion or worse; one way to avoid it,
though it might not make MessageBox() debugging very useful, is to call
MessageBox() only when InSendMessage() returns FALSE.
More information about the wine-devel
mailing list