Try implementing running block on main thread using NSBlockOperation

Seems preferable to me to private `-invoke` API