.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);
}
}
}