diff --git a/ZeroLevel/Services/Utils/Multiprocessor.cs b/ZeroLevel/Services/Utils/Multiprocessor.cs index c30dbdb..acd0142 100644 --- a/ZeroLevel/Services/Utils/Multiprocessor.cs +++ b/ZeroLevel/Services/Utils/Multiprocessor.cs @@ -72,18 +72,28 @@ namespace ZeroLevel.Utils public void Dispose() { _is_disposed = true; - _queue.CompleteAdding(); - Thread.Yield(); - _queue.Dispose(); - foreach (var thread in _threads) + try { - try + _queue.CompleteAdding(); + _queue.Dispose(); + foreach (var thread in _threads) { - thread.Join(); - thread.Abort(); + try + { + thread.Abort(); + } + catch { } + } + foreach (var thread in _threads) + { + try + { + thread.Join(); + } + catch { } } - catch { } } + catch { } } } }