.NET 4.x Бесконечная попытка приконнектится - C#

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

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

Имеется некий класс Class 1, из которого запускается таймер объекта другого класса (Class2). В Elapsed этого таймера метод пытается приконнектится к некоторому серверу. Если коннект удался, то мне нужно как то оповестить Class1 об этом или запустить метод этого класса. Как мне это сделать?

Решение задачи: «.NET 4.x Бесконечная попытка приконнектится»

textual
Листинг программы
using System;
using System.Timers;
 
namespace ConsoleApplication129
{
    public static class Program
    {
        private static void Main()
        {
            var a = new A(1000);
            a.Start();
            Console.ReadKey();
        }
    }
 
    public class A
    {
        private readonly Timer _timer;
        private readonly B _b = new B();
 
        public A(double interval)
        {
            _timer = new Timer(interval);
            _timer.Elapsed += OnElapsed;
            _b.Connected += (sender, span) => Console.WriteLine("Connected for {0} seconds!", span.Seconds);
        }
 
        private void OnElapsed(object state, ElapsedEventArgs elapsedEventArgs)
        {
            _b.DoSomething();
        }
 
        public void Start()
        {
            _timer.Start();
        }
    }
 
    public class B
    {
        public event EventHandler<TimeSpan> Connected;
 
        protected virtual void OnConnected(TimeSpan e)
        {
            var handler = Connected;
            if (handler != null) 
                handler(this, e);
        }
 
        public void DoSomething()
        {
            var r = new Random();
            var ts = TimeSpan.FromSeconds(r.Next(5));
            System.Threading.Thread.Sleep(ts.Milliseconds);
            OnConnected(ts);
        }
    }
}

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


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

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

12   голосов , оценка 3.75 из 5
Похожие ответы