Clean up
This commit is contained in:
parent
5d21d3f8ef
commit
1cd71c54fc
5 changed files with 964 additions and 886 deletions
|
|
@ -2,6 +2,7 @@
|
|||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
|
@ -13,6 +14,7 @@ using Microsoft.Extensions.Logging;
|
|||
|
||||
namespace MaddoShared
|
||||
{
|
||||
[SuppressMessage("Interoperability", "CA1416:Validate platform compatibility")]
|
||||
public class ImageCreationStuff(ILogger<ImageCreationStuff> logger, PicSettings picSettings, ImageCreatorSharp imageCreatorService)
|
||||
{
|
||||
public class Options
|
||||
|
|
@ -38,11 +40,9 @@ namespace MaddoShared
|
|||
{
|
||||
var stopwatch = new Stopwatch();
|
||||
stopwatch.Start();
|
||||
// todo immagini counter
|
||||
//todo set label
|
||||
|
||||
await ProcessImagesParallel(options, results, updateEvent, cancellationToken);
|
||||
|
||||
// todo set finito label
|
||||
stopwatch.Stop();
|
||||
|
||||
return
|
||||
|
|
@ -55,7 +55,7 @@ namespace MaddoShared
|
|||
EventHandler<Tuple<string, int>> updateEvent,
|
||||
CancellationToken cancellationToken = default)
|
||||
{
|
||||
List<FileData> dataToProcess = GetFilesToProcess(options);
|
||||
var dataToProcess = GetFilesToProcess(options);
|
||||
|
||||
// int threads = options.MaxThreads == 0 ? Environment.ProcessorCount * 2 : options.MaxThreads;
|
||||
int threads = options.MaxThreads;
|
||||
|
|
@ -179,158 +179,7 @@ namespace MaddoShared
|
|||
}).ToList();
|
||||
}
|
||||
|
||||
// public async Task CreaImmaginiParallel(Options options, ConcurrentBag<string> results,
|
||||
// EventHandler<Tuple<string, int>> updateEvent,
|
||||
// CancellationToken cancellationToken = default(CancellationToken))
|
||||
// {
|
||||
// var dataToProcess = new List<FileData>();
|
||||
// if (options.AggiornaSottodirectory && options.CreaSottocartelle)
|
||||
// {
|
||||
// var helper = new FileHelperSharp();
|
||||
// dataToProcess = helper.GetFilesRecursive(new DirectoryInfo(options.SourcePath),
|
||||
// new DirectoryInfo(options.DestinationPath),
|
||||
// "*.jpg", new FileHelperOptions()
|
||||
// {
|
||||
// FilesPerFolder = options.FilePerCartella,
|
||||
// Suffix = options.SuffissoCartelle,
|
||||
// CounterSize = options.CifreContatore,
|
||||
// NumerationType = options.NumerazioneType
|
||||
// });
|
||||
// }
|
||||
// else if (!options.CreaSottocartelle)
|
||||
// {
|
||||
// var files = Directory.EnumerateFiles(options.SourcePath, "*.jpg",
|
||||
// options.AggiornaSottodirectory
|
||||
// ? SearchOption.AllDirectories
|
||||
// : SearchOption.TopDirectoryOnly);
|
||||
//
|
||||
// dataToProcess = files.Select(x =>
|
||||
// {
|
||||
// var fInfo = new FileInfo(x);
|
||||
// var filePath = fInfo.DirectoryName;
|
||||
// var trimmedSourcePath = options.SourcePath.TrimEnd('\\');
|
||||
// var newFilePath = fInfo.FullName.Replace(trimmedSourcePath, "").TrimStart('\\');
|
||||
// newFilePath = Path.Combine(options.DestinationPath, newFilePath);
|
||||
//
|
||||
// var destFolderPath = new FileInfo(newFilePath).DirectoryName;
|
||||
// var destFolderInfo = new DirectoryInfo(destFolderPath);
|
||||
// destFolderInfo.EnsureDirectoryExists();
|
||||
//
|
||||
// return new FileData(fInfo, new DirectoryInfo(new FileInfo(newFilePath).DirectoryName));
|
||||
// }).ToList();
|
||||
//
|
||||
// //// TODO
|
||||
// //dataToProcess =
|
||||
// // (from f in Directory.EnumerateFiles(options.SourcePath, "*.jpg",
|
||||
// // options.AggiornaSottodirectory
|
||||
// // ? SearchOption.AllDirectories
|
||||
// // : SearchOption.TopDirectoryOnly)
|
||||
// // select new FileData(new FileInfo(f),
|
||||
// // new DirectoryInfo(options.DestinationPath.PathCombine(
|
||||
// // new FileInfo(f).DirectoryName.Replace(options.SourcePath.TrimEnd(new char[] {'\\'}), "")
|
||||
// // )
|
||||
// // )
|
||||
// // )
|
||||
// // )
|
||||
// // .ToList();
|
||||
// }
|
||||
//
|
||||
// var threads = options.MaxThreads == 0 ? Environment.ProcessorCount * 2 : options.MaxThreads;
|
||||
// var scheduler = new ConcurrentExclusiveSchedulerPair(TaskScheduler.Default, threads)
|
||||
// .ConcurrentScheduler;
|
||||
//
|
||||
// //var allTasks = new List<Task>();
|
||||
// var test = from d in dataToProcess
|
||||
// select Task.Factory.StartNew(async () =>
|
||||
// {
|
||||
// var imgCreator = new ImageCreatorSharp(d.File, d.Directory);
|
||||
// await imgCreator.CreaImmagineThread(d.File.Name);
|
||||
//
|
||||
// //await new ImageCreatorSharp(d.File, d.Directory).CreaImmagineThread(d.File.Name);
|
||||
//
|
||||
// imgCreator = null;
|
||||
//
|
||||
// //var imgC = new ImageCreatorSharp(d.File, d.Directory);
|
||||
// //imgC.CreaImmagineThread(d.File.Name);
|
||||
// //imgC = null;
|
||||
// }, CancellationToken.None, TaskCreationOptions.None, scheduler);
|
||||
//
|
||||
// //int count = 0;
|
||||
//
|
||||
// if (options.LinearExecution)
|
||||
// {
|
||||
// foreach (var task in test)
|
||||
// {
|
||||
// await task;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// if (options.ChunksSize == 0)
|
||||
// {
|
||||
// //var opts = new ParallelOptions() { MaxDegreeOfParallelism = threads, CancellationToken = cancellationToken, TaskScheduler = scheduler};
|
||||
// await dataToProcess.ParallelForEachAsync(async fileData =>
|
||||
// {
|
||||
// var imgCreator = new ImageCreatorSharp(fileData.File, fileData.Directory);
|
||||
// await imgCreator.CreaImmagineThread(fileData.File.Name);
|
||||
// // await new ImageCreatorSharp(fileData.File, fileData.Directory).CreaImmagineThread(fileData.File.Name);
|
||||
// results.Add(fileData.File.Name);
|
||||
// //count = Interlocked.Increment(ref count);
|
||||
//
|
||||
// try
|
||||
// {
|
||||
// updateEvent?.Invoke(this, new Tuple<string, int>(fileData.File.Name, dataToProcess.Count));
|
||||
// }
|
||||
// catch (Exception e)
|
||||
// {
|
||||
// logger.LogError(e, "Error in reporting update");
|
||||
// //Console.WriteLine(e);
|
||||
// throw;
|
||||
// }
|
||||
// finally
|
||||
// {
|
||||
// // Disposing of the creator
|
||||
// imgCreator = null;
|
||||
// }
|
||||
// }, maxDegreeOfParallelism: threads, false, cancellationToken);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// var asdf = SplitList(dataToProcess.ToList(), options.ChunksSize).ToList();
|
||||
//
|
||||
//
|
||||
// foreach (var sdaf in asdf)
|
||||
// {
|
||||
// await sdaf.ParallelForEachAsync(async fileData =>
|
||||
// {
|
||||
// var imgCreator = new ImageCreatorSharp(fileData.File, fileData.Directory);
|
||||
// await imgCreator.CreaImmagineThread(fileData.File.Name);
|
||||
// // await new ImageCreatorSharp(fileData.File, fileData.Directory).CreaImmagineThread(
|
||||
// // fileData.File.Name);
|
||||
// results.Add(fileData.File.Name);
|
||||
// //count = Interlocked.Increment(ref count);
|
||||
// try
|
||||
// {
|
||||
// updateEvent?.Invoke(this,
|
||||
// new Tuple<string, int>(fileData.File.Name, dataToProcess.Count));
|
||||
// }
|
||||
// catch (Exception e)
|
||||
// {
|
||||
// logger.LogError("Error in reporting update");
|
||||
// //Console.WriteLine(e);
|
||||
// throw;
|
||||
// }
|
||||
// finally
|
||||
// {
|
||||
// imgCreator = null;
|
||||
// }
|
||||
// }, maxDegreeOfParallelism: threads, false, cancellationToken);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
public static IEnumerable<List<T>> SplitList<T>(List<T> bigList, int nSize = 3)
|
||||
private static IEnumerable<List<T>> SplitList<T>(List<T> bigList, int nSize = 3)
|
||||
{
|
||||
for (int i = 0; i < bigList.Count; i += nSize)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue