IEnumerator Start() { Debug.LogFormat("Wait for 2 seconds"); yield return(CoroutineTask.Delay(2f).WaitForDone()); CoroutineTask task = new CoroutineTask(DoTask()) .ContinueWith( DoContinueTask(), CoroutineTaskContinuationOptions.OnCompleted | CoroutineTaskContinuationOptions.OnFaulted ).ContinueWith( () => { Debug.Log("The task is completed"); } ); yield return(task.WaitForDone()); Debug.LogFormat("IsDone:{0} IsCompleted:{1} IsFaulted:{2} IsCancelled:{3}", task.IsDone, task.IsCompleted, task.IsFaulted, task.IsCancelled); }