Правильна ли идея алгоритма и как ее правильно реализовать? - C#

Узнай цену своей работы

Формулировка задачи:

Правильна ли идея алгоритма и как ее правильно реализовать, чтобы программа не зависала и мониторинг работал в своем отдельном потоке и не влиял на программу, но передавал ей результаты. (программа считывает из инфо класса) Есть информационный класс Сервер собирающий содержащий информацию о доступности сервера по ping, http и BD В зависимости от количества серверов (например два) одновременно запускаются потоки для опроса каждого сервера действующие по следующему алгоритму 1. Проверяем доступность по ping, если доступен запускаем 2, если нет, в инфо класс пишем соответствующую инфу, выходим. 2. Если по ping доступен запускаем сразу не зависимо друг от друга асинхронно методы проверки по http и BD. Если по http не доступен делаем 3 попытки, чтобы убедиться что действительно не доступен записываем результаты в инфо класс. 3. Ждем завершения потоков, смотрим инфо класс и состояния серверов, обрабатываем данные, после чего запускаем опять опрос и так бесконечно.

Решение задачи: «Правильна ли идея алгоритма и как ее правильно реализовать?»

textual
Листинг программы
  1.             Thread test1 = new Thread(S1);
  2.             Thread test2 = new Thread(S2);
  3.             test1.Start();
  4.             test2.Start();
  5. .......
  6. static void test_monitoring(Server server)
  7.         {
  8.             throw new NotImplementedException();
  9.         }
  10.  
  11.  
  12.  
  13.         static void S1()
  14.         {
  15.             TestMonitoring test = new TestMonitoring();
  16.             Server server = new Server();
  17.             server.IP = "10.xx.24.xxx";
  18.             server.URL = "http://" + "10.xx.24.xxx" + "/cgi/status.txt";
  19.             test.onMonitoringServer += new TestMonitoring.TestMonitoring(test_monitoring);
  20.             test.PingAndRun(server);
  21.         }
  22.  
  23.         static void S2()
  24.         {
  25.             TestMonitoring test2 = new TestMonitoring();
  26.             Server server2 = new Server();
  27.             server2.IP = "10.xx.100.xxx";
  28.             server2.URL = "http://" + "10.xx.100.xxx" + "/cgi/status.txt";
  29.             test2.onMonitoringServer += new TestMonitoring.TestMonitoring(test_monitoring);
  30.             test2.PingAndRun(server2);
  31.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы