/// <summary> Attaches the callback to fire when progress is reported.
 ///
 /// This is usually called at the beginning of the task.
 /// Returns the current progress task, so that methods may be chained.
 /// </summary>
 /// <param name="callback">Attach a callback to the ProgressChanged event</param>
 public ProgressEnumerator <T> SetCallback(ProgressChangedCallback callback)
 {
     progress.SetCallback(callback);
     return(this);
 }