1. Don't specify the connection type! Qt choses it well! Direct-Connection slots are directly executed in the context of the calling thread, whereas queued-connections are queued into the destination threads message queue and executed when they are retrieved by that destination thread. If you don't specify anything, qt choses automatically. If source and destination reside in different threads queuedconnection is used, otherwise direct.
2. QtConcurrent spawns threads.
3. I don't get what you are doing with your timers.
Johannes
Bookmarks