コード例 #1
0
        /// <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;
                    }
                }
            }
        }
コード例 #2
0
        /// <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();
            }
        }