signals and thread between different qobject is a complex problem. We do not
use std::bind, because this method can not provide correct moveToThread() support