/// <summary> /// Запросить текущие значения лучшего решения /// </summary> /// <returns></returns> private async Task RefreshIslandFitnesValues() { foreach (var islandStruct in Islands.ToList()) { double currentFitness = islandStruct.Value.FitnessValue; BestFitnessValueResponse bestFitnessValueMessage = await islandStruct.Value.Island.Ask <BestFitnessValueResponse>(new BestFitnessValueRequest()); if (_geneticAlgoritmConfig.Predicate(bestFitnessValueMessage.FitnessValue, currentFitness)) { Islands.Remove(islandStruct.Key); Islands.TryAdd(islandStruct.Key, new IslandValue { FitnessValue = bestFitnessValueMessage.FitnessValue, Island = islandStruct.Value.Island }); } } }