From 58fef5c3078476d6a802b35ada121eab6361f881 Mon Sep 17 00:00:00 2001 From: glax Date: Fri, 19 May 2023 19:21:54 +0200 Subject: [PATCH] Added force shutdown functionality and option to select wether we want to force or not --- Tranga-CLI/Tranga_Cli.cs | 9 ++++++++- Tranga/TaskManager.cs | 10 +++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Tranga-CLI/Tranga_Cli.cs b/Tranga-CLI/Tranga_Cli.cs index 7d10790..6cfb2c7 100644 --- a/Tranga-CLI/Tranga_Cli.cs +++ b/Tranga-CLI/Tranga_Cli.cs @@ -90,7 +90,14 @@ public static class Tranga_Cli break; } } - taskManager.Shutdown(); + + if (taskManager.GetAllTasks().Any(task => task.isBeingExecuted)) + { + Console.WriteLine("Force quit (Even with running tasks?) y/N"); + selection = Console.ReadKey().Key; + taskManager.Shutdown(selection == ConsoleKey.Y); + }else + taskManager.Shutdown(false); } private static ConsoleKey Menu(string folderPath) diff --git a/Tranga/TaskManager.cs b/Tranga/TaskManager.cs index a4b16bf..8e882f9 100644 --- a/Tranga/TaskManager.cs +++ b/Tranga/TaskManager.cs @@ -85,10 +85,18 @@ public class TaskManager return this._chapterCollection.Keys.ToArray(); } - public void Shutdown() + public void Shutdown(bool force = false) { _continueRunning = false; ExportTasks(Directory.GetCurrentDirectory()); + + if(force) + Environment.Exit(_allTasks.Count(task => task.isBeingExecuted)); + + //Wait for tasks to finish + while(_allTasks.Any(task => task.isBeingExecuted)) + Thread.Sleep(10); + } private HashSet ImportTasks(string importFolderPath)