Hi,
The QtConcurrent library looks promising. I spent several hours perusing the code and now my head hurts :-)
I'd like to know what guarantees are intended by the library. For example, it would be nice to guarantee that QFutureWatcher will emit precisely one of finished() or canceled() and never both. I can't see the code that would provide this guarantee, though. On the contrary, it looks to me that FutureResultBase will happily send a cancel() after finished().