add interface to specify task executor

We extended interfaces to have ability to execute tasks in specified executor.
It's very useful when user want to have finer control of executed tasks.