Async / Non-blocking. It gets performed when GUI thread goes idle after processing messages (if any).
Callback queue itself is MT protected.
Also, callback gets invoked by GUI thread - it is in fact the best way how worker thread is supposed to communicate with it, means you do not need to worry too much about protecting data, there can only be a single GUI thread, means now two Callbacks from Callback (timer) queue can be processed at the same time.
is this true? could you clarify this? can it happen that a second Callback (which was also posted by PostCallback) gets executed while the first one is still in execution?