Represents an async task.
Inheritance: IEnumerator
 /// <summary>
 /// Start a co-routine on a background thread.
 /// </summary>
 /// <param name="task">Gets a task object with more control on the background thread.</param>
 /// <returns></returns>
 public static Coroutine StartCoroutineAsync(
     this MonoBehaviour behaviour, IEnumerator routine, 
     out Task task)
 {
     task = new Task(routine);
     return behaviour.StartCoroutine(task);
 }