/// <summary> /// Высвобождает (т.е. останавливает) поток балансера /// </summary> private void CancelPerformanceBalancer() { if (balancerThread != null) { balancerThread.Dispose(); balancerThread = null; } }
/// <summary> /// Устанавливает новый балансер, заставляет завершится старый. /// </summary> /// <remarks> /// Балансер сделан частью трид-пула (композиция) для того что бы время жизни балансера не превысила времени жизни /// самого пула. /// Т.к. это особенность данной реализации - я и не стал выносить его под интерфейс /// </remarks> /// <param name="balancer">Новый балансер</param> internal void SetPerformanceBalancer(PerformanceBalancer balancer, PerformanceBalanceSettings settings) { CancelPerformanceBalancer(); if (balancer != null) { balancerThread = new PerformanceBalancerThread(balancer, settings); } }