private async Task Process(Func<Task<StorageFile>> storageFile, int maxPixelDimension, int percentQuality, Action<Stream> pictureAvailable, Action assumeCancelled) { var file = await storageFile(); if (file == null) { assumeCancelled(); return; } var rawFileStream = await file.OpenAsync(FileAccessMode.Read); var resizedStream = await ResizeJpegStreamAsync(maxPixelDimension, percentQuality, rawFileStream); pictureAvailable(resizedStream.AsStreamForRead()); }