Thanks, I've changed my program flow to PostThreadMessage style with
PeekMessage inside main thread and it works like charm.


2013/9/14 james <[email protected]>

> > By thread i meant context in which callback was called, actually there
> is no threading that done by me - only libevents callbacks. So there only
> issue is window that was created by win api inside callback function stop
> responding (and getting signals) when step out from callback function.
>
> Well, the thread that is running the callbacks came from somewhere, and
> when it is not in the callback it is doing something - probably blocked on
> an event.
>
> Look here: http://msdn.microsoft.com/en-**us/library/windows/desktop/**
> ms687069(v=vs.85).aspx<http://msdn.microsoft.com/en-us/library/windows/desktop/ms687069(v=vs.85).aspx><
> http://msdn.microsoft.com/en-**us/library/windows/desktop/**
> ms687069%28v=vs.85%29.aspx<http://msdn.microsoft.com/en-us/library/windows/desktop/ms687069%28v=vs.85%29.aspx>
> >
>
> If the thread is waiting using WaitFor... then it will have no chance of
> handling window messages.  If it is in MsgWaitFor... then it has some
> chance, providing it is receiving and dispatching window messages.  And
> while old fogeys like me used to write dispatch loops, they are often
> hidden inside GUI libraries which might need to perform unusual processing.
>
> Now I don't actually have a current source for libevent and haven't looked
> in one for a while, but I would be quite surprised if it waited in a way
> that dispatched window messages.
>
> You are much better off running your UI in a dedicated thread (which may
> be the main thread) where whatever UI library you have can run the event
> loop as it sees fit and running something like libevent (or other similar
> things) in threads created for that purpose - and not doing any interaction
> with Windowing from those threads beyond notifying them with PostMessage or
> PostThreadMessage.
>
> Note that a single threaded COM apartment is also expecting to run in a
> thread that processes window messages.
>
> James
>
>


-- 
Best regards,

Artem Titov

Reply via email to