From 62753b20bbc1261317a654807c960374fb8a9b45 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Thu, 9 Apr 2020 00:29:55 +0200 Subject: [PATCH] Cleaning thread management of tasks --- Kyoo/Controllers/TaskManager.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Kyoo/Controllers/TaskManager.cs b/Kyoo/Controllers/TaskManager.cs index 8ed3b70b..de13479e 100644 --- a/Kyoo/Controllers/TaskManager.cs +++ b/Kyoo/Controllers/TaskManager.cs @@ -30,6 +30,14 @@ namespace Kyoo.Controllers protected override async Task ExecuteAsync(CancellationToken cancellationToken) { + ReloadTask(); + + IEnumerable startupTasks = _tasks.Select(x => x.task) + .Where(x => x.RunOnStartup && x.Priority != Int32.MaxValue) + .OrderByDescending(x => x.Priority); + foreach (ITask task in startupTasks) + _queuedTasks.Enqueue((task, null)); + while (!cancellationToken.IsCancellationRequested) { if (_queuedTasks.Any()) @@ -63,14 +71,8 @@ namespace Kyoo.Controllers public override Task StartAsync(CancellationToken cancellationToken) { - ReloadTask(); - - IEnumerable startupTasks = _tasks.Select(x => x.task) - .Where(x => x.RunOnStartup && x.Priority != Int32.MaxValue) - .OrderByDescending(x => x.Priority); - foreach (ITask task in startupTasks) - _queuedTasks.Enqueue((task, null)); - return base.StartAsync(cancellationToken); + Task.Run(() => base.StartAsync(cancellationToken)); + return Task.CompletedTask; } public override Task StopAsync(CancellationToken cancellationToken)