예제 #1
0
 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));
     }));
 }
예제 #2
0
        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;
            });
        }