Added force shutdown functionality and option to select wether we want to force or not

This commit is contained in:
glax 2023-05-19 19:21:54 +02:00
parent c8654dbb85
commit 58fef5c307
2 changed files with 17 additions and 2 deletions

View File

@ -90,7 +90,14 @@ public static class Tranga_Cli
break; 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) private static ConsoleKey Menu(string folderPath)

View File

@ -85,10 +85,18 @@ public class TaskManager
return this._chapterCollection.Keys.ToArray(); return this._chapterCollection.Keys.ToArray();
} }
public void Shutdown() public void Shutdown(bool force = false)
{ {
_continueRunning = false; _continueRunning = false;
ExportTasks(Directory.GetCurrentDirectory()); 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<TrangaTask> ImportTasks(string importFolderPath) private HashSet<TrangaTask> ImportTasks(string importFolderPath)