private static async Task DoWaitAsync(Task task, CancellationToken cancellationToken)
 {
     using (var cancelTaskSource = new CancellationTokenTaskSource <object>(cancellationToken))
         await await Task.WhenAny(task, cancelTaskSource.Task).ConfigureAwait(false);
 }
 private static async Task <TResult> DoWaitAsync <TResult>(Task <TResult> task, CancellationToken cancellationToken)
 {
     using (var cancelTaskSource = new CancellationTokenTaskSource <TResult>(cancellationToken))
         return(await await Task.WhenAny(task, cancelTaskSource.Task).ConfigureAwait(false));
 }