public void Execute(Alternation alternation)
 {
     if (Value > 0)
     {
         var   seconds = GetAsUnit();
         Timer timer   = null;
         timer = new Timer(
             (s) =>
         {
             _timersPool.Remove(timer);
             alternation.Execute();
         },
             null, seconds * 1000, Timeout.Infinite);
         _timersPool.Add(timer);
     }
     else
     {
         alternation.Execute();
     }
 }