/// <summary>
 /// Create a sequence of progress tasks for executing a process containing two or more operations.
 /// </summary>
 /// <typeparam name="TResult">The type of object returned by the first operation.</typeparam>
 /// <param name="func">The first operation to execute.</param>
 /// <param name="typeDescription">The type description use for the progress.</param>
 /// <param name="operationDescription">The progress description to use for the first operation.</param>
 /// <returns></returns>
 protected ProgressTask <TResult> First <TResult>(Func <List <TResult> > func, string typeDescription, string operationDescription)
 {
     return(ProgressTask <TResult> .Create(func, this, typeDescription, operationDescription));
 }