public static Task WriteAsync(this Stream source, byte[] buffer, int offset, int count, CancellationToken cancellationToken)
 {
     if (cancellationToken.IsCancellationRequested)
     {
         return(AsyncCompatLibExtensions.FromCancellation(cancellationToken));
     }
     return(Task.Factory.FromAsync <byte[], int, int>(new Func <byte[], int, int, AsyncCallback, object, IAsyncResult>(source.BeginWrite), new Action <IAsyncResult>(source.EndWrite), buffer, offset, count, null));
 }
 public static Task <XmlReader> ExecuteXmlReaderAsync(this SqlCommand source, CancellationToken cancellationToken)
 {
     if (cancellationToken.IsCancellationRequested)
     {
         return(AsyncCompatLibExtensions.FromCancellation <XmlReader>(cancellationToken));
     }
     return(Task <XmlReader> .Factory.FromAsync(new Func <AsyncCallback, object, IAsyncResult>(source.BeginExecuteXmlReader), new Func <IAsyncResult, XmlReader>(source.EndExecuteXmlReader), null));
 }
 public static Task FlushAsync(this Stream source, CancellationToken cancellationToken)
 {
     if (cancellationToken.IsCancellationRequested)
     {
         return(AsyncCompatLibExtensions.FromCancellation(cancellationToken));
     }
     return(Task.Factory.StartNew(delegate(object s)
     {
         ((Stream)s).Flush();
     }, source, cancellationToken, TaskCreationOptions.None, TaskScheduler.Default));
 }