RunTask wrapper to simplify this
process. By using this wrapper, you can specific a task queue, a work, and an optional completion callback.
RunTask encapsulates the boilerplate
code, creating a simple standalone task function. Simple data capturing passes to the callbacks without context parameters by using std::function.
