On Wed, Jul 25, 2012 at 10:50 PM, Simon <s.d.hamm...@gmail.com> wrote:
> On 25/07/2012 19:34, Gor Gyolchanyan wrote: > >> Hi! >> >> I'm trying to write a WinAPI example to have multi-threaded GUI. I wanna >> have a Window class, which creates a window and listens to its messages >> in a separate thread when constructed. This will allow me to write a >> main function like this: >> >> void main() >> { >> Window w = new Window; >> w.move(100, 200); >> w.resize(800, 600); >> w.show(); >> } >> >> The methods called for the window will send asynchronous messages, which >> will cause the window to change its position, size and visibility >> on-the-fly. This is convenient, because no message loop needs to be >> launched separately and every window will rocess its messages in a >> separate thread. >> >> Can anyone please tell me how to achieve this? >> >> -- >> Bye, >> Gor Gyolchanyan. >> > > It depends exactly on what you are trying to do, but in general: > > You have to be very, very careful with trying to do multi threading w/ > windoze windows. Try doing a google search on it, and the advice is > invariably: don't do multi threaded windows. Everybody including people > famous for their in-depth window knowledge recommends a single thread UI > with non-UI worker threads. > > Having completely separate top level windows each in it's own thread is > ok, but if you want to have a parent/child relation between windows in > different threads, then you can not use any thread synchronisation > primitives all at other than MsgWaitForMultipleObjectsEx, otherwise you > will have a guaranteed deadlock. In which case you'd have to do all of the > threading your self and not use anything in phobos. > > -- > My enormous talent is exceeded only by my outrageous laziness. > http://www.ssTk.co.uk > > > I see. Thanks for the reply. Somehow I suspected this to be the case. -- Bye, Gor Gyolchanyan.