AcTools.Utils.ImageUtils.ApplyPreviewsAsync C# (CSharp) Méthode

ApplyPreviewsAsync() public static méthode

public static ApplyPreviewsAsync ( string acRoot, string carName, string source, bool resize, double?>.IProgress progress = null, CancellationToken cancellation = default(CancellationToken) ) : Task
acRoot string
carName string
source string
resize bool
progress double?>.IProgress
cancellation CancellationToken
Résultat Task
        public static async Task ApplyPreviewsAsync(string acRoot, string carName, string source, bool resize, IProgress<Tuple<string, double?>> progress = null,
                CancellationToken cancellation = default(CancellationToken)) {
            var files = Directory.GetFiles(source, "*.bmp");
            for (var i = 0; i < files.Length; i++) {
                var file = files[i];
                var id = Path.GetFileNameWithoutExtension(file);
                var skinDirectory = FileUtils.GetCarSkinDirectory(acRoot, carName, id);
                if (!Directory.Exists(skinDirectory)) continue;

                progress?.Report(new Tuple<string, double?>(id, (double)i / files.Length));
                await Task.Run(() => { ApplyPreview(file, Path.Combine(skinDirectory, "preview.jpg"), resize); }, cancellation);
                if (cancellation.IsCancellationRequested) return;
            }

            try {
                Directory.Delete(source);
            } catch (Exception) {
                // ignored
            }
        }