diff --git a/Solver/Solver.cs b/Solver/Solver.cs index e07b5f0..3dd5e26 100644 --- a/Solver/Solver.cs +++ b/Solver/Solver.cs @@ -137,7 +137,11 @@ public sealed class Solver : IDisposable } finally { - semaphore.Release(); + try + { + semaphore.Release(); + } + catch (ObjectDisposedException) { } } var solution = solver.Solution(); var progressActions = activeStates[stateIdx].Actions.Concat(solution.Actions).Skip(definiteActionCount).ToList(); @@ -255,7 +259,11 @@ public sealed class Solver : IDisposable } finally { - semaphore.Release(); + try + { + semaphore.Release(); + } + catch (ObjectDisposedException) { } } var solution = solver.Solution(); OnWorkerProgress?.Invoke(solution, solver.MaxScore); @@ -342,7 +350,11 @@ public sealed class Solver : IDisposable } finally { - semaphore.Release(); + try + { + semaphore.Release(); + } + catch (ObjectDisposedException) { } } var solution = solver.Solution(); OnWorkerProgress?.Invoke(solution, solver.MaxScore);