private async Task <string> EncodeAsync(Func <Task <ThumbnailExtractionResult> > extractFunc) { var result = await extractFunc(); File.Delete(ThumbnailPath); using (var encoder = new JpegEncoder()) using (var fs = File.Create(ThumbnailPath)) { encoder.SetColorSpace(ColorSpace.Bgra8888); encoder.SetResolution(result.Size); await encoder.EncodeAsync(result.RawData, fs); return(ThumbnailPath); } }