Having a program manager, whose background is technical writing, reply
with "You can have multiple UI threads" to a question asking about "more
than one message loop per process" doesn't give me a warn and fuzzy when
you've got seasoned developers like MVP Nicholas Paldino saying
otherwise: "For any process, you are only supposed to have one UI thread.
Doing otherwise will have unpredictable results. This has been the model
for Windows programming for as long as it has been around." [1]  You can
certainly have more than one message loop or message pump per process, but
that's not the same thing as having more than one UI thread.

I believe it gets down to one message pump handling UI messages--since
each message pump needs to be on it's on thread there can be only one UI
thread.

[1] http://www.thescripts.com/forum/thread228141.html

On Wed, 19 Jul 2006 09:43:30 +0300, Stoyan Damov <[EMAIL PROTECTED]>
wrote:

>Host: MarkRi (Microsoft)
>Q: So it would seem to me that it is possible and that I can have more
>than one message loop per process. However, is this recommended? If
>so, what do I need to look out for?
>
>A: You can have multiple UI threads per process, but you must call
>Application.Run() on each thread. You can also call ShowDialog()
>instead of Run(). ShowDialog() creates a message loop. The tricky part
>is that we don't support having those UI components interacting
>natively -- you'll have to do your own marshalling using
>Invoke/BeginInvoke.

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to