/// <summary> /// server completed testing /// сервер закончил тестирование /// </summary> /// <param name="serverNum">server number/номер сервера</param> private void server_TestingEndEvent(int serverNum) { TestingProgressChangeEvent?.Invoke(100, 100, serverNum); PrimeProgressChangeEvent?.Invoke(serverNum, _countAllServersMax); lock (_serverRemoveLocker) { BotPanel bot = _botsInTest.Find(b => b.TabsSimple[0].Connector.ServerUid == serverNum); if (bot != null) { // записываем результаты тестов, когда они пройдут ReportsToFazes[ReportsToFazes.Count - 1].Load(bot); // уничтожаем робота bot.Clear(); bot.Delete(); _botsInTest.Remove(bot); } for (int i = 0; i < _servers.Count; i++) { if (_servers[i].NumberServer == serverNum) { _servers[i].TestingEndEvent -= server_TestingEndEvent; _servers[i].TestintProgressChangeEvent -= server_TestintProgressChangeEvent; _servers[i].Clear(); _servers.RemoveAt(i); break; } } } }
/// <summary> /// server completed testing /// сервер закончил тестирование /// </summary> /// <param name="serverNum">server number/номер сервера</param> private void server_TestingEndEvent(int serverNum) { TestingProgressChangeEvent?.Invoke(100, 100, serverNum); PrimeProgressChangeEvent?.Invoke(serverNum, _countAllServersMax); lock (_serverRemoveLocker) { for (int i = 0; i < _servers.Count; i++) { if (_servers[i].NumberServer == serverNum) { _servers[i].TestingEndEvent -= server_TestingEndEvent; _servers[i].TestintProgressChangeEvent -= server_TestintProgressChangeEvent; _servers[i].Clear(); _servers.RemoveAt(i); break; } } GC.Collect(); BotPanel bot = _botsInTest.Find(b => b.NameStrategyUniq.StartsWith(serverNum.ToString())); if (bot != null) { // записываем результаты тестов, когда они пройдут ReportsToFazes[ReportsToFazes.Count - 1].Load(bot); // уничтожаем робота bot.Clear(); bot.Delete(); _botsInTest.Remove(bot); } GC.Collect(); GC.WaitForPendingFinalizers(); } }