Hi, anda_skoa

> Do you register your event handlers in the secondary thread context?
When I create SystemEventImp Object, I register my event handlers, indeed, SystemEventImp have a member variable of map type to record <event, handler> pairs.
The registration was done before moveToThread().

>How to you start your own loop?
It seems that the loop started by calling EventManager::ProcessQueue() directly from main thread.
It is a legacy source code, I am not very sure about it.
Can this can explain your first question, i.e. "It is strange that both thread's stack claim that the execution started in main() "?