/// <summary> /// Async version of <see cref="DoGetFileStream(FileSystemFile, Action{FileSystemStream})"/>. /// This base/default implementation just synchronously calls <see cref="DoGetFileStream(FileSystemFile, Action{FileSystemStream})"/> and /// returns already completed Task with result returned by <see cref="DoGetFileStream(FileSystemFile, Action{FileSystemStream})"/> /// </summary> protected internal virtual Task <FileSystemStream> DoGetFileStreamAsync(FileSystemFile file, Action <FileSystemStream> disposeAction) { return(TaskUtils.AsCompletedTask(() => DoGetFileStream(file, disposeAction))); }
/// <summary> /// Override to get file stream. /// This method may be called by multiple threads /// </summary> protected internal abstract FileSystemStream DoGetFileStream(FileSystemFile file, Action <FileSystemStream> disposeAction);