public IAsyncOperation <ChannelStateOperationResult> WriteAsync(AsynchronousWritingDelegateWithResult writingDelegate, long length, TimeSpan timeout) { return(AsyncInfo.Run(async cancellationToken => { return new ChannelStateOperationResult(await _internal.WriteAsync(DelegateHelper.Wrap(writingDelegate), null, length, cancellationToken, timeout)); })); }
public static Func <MemoryMappedViewStream, object, CancellationToken, Task <Internal.OperationStatus> > Wrap(AsynchronousWritingDelegateWithResult externalDelegate) { return(async(MemoryMappedViewStream stream, object parameter, CancellationToken cancellationToken) => { if (externalDelegate == null) { return Internal.OperationStatus.Completed; } var result = await externalDelegate.Invoke(stream.AsRandomAccessStream()).AsTask(cancellationToken); return (Internal.OperationStatus)result; }); }