Ejemplo n.º 1
0
        public void AddTask(
            string taskName,
            Action task,
            TimeSpan dueTime,
            TimeSpan period,
            TaskConcurrencyOptions taskConcurrencyOptions)
        {
            var scheduledTask = new ScheduledTask(taskName, task, taskConcurrencyOptions);

              var taskTimer =
            new Timer(
              RunTask,
              scheduledTask,
              Timeout.Infinite,
              Timeout.Infinite);

              if (!_tasksTimers.TryAdd(taskName, taskTimer))
              {
            taskTimer.Dispose();

            throw new Exception("Could not add task " + taskName + ".");
              }

              taskTimer.Change(dueTime, period);
        }
Ejemplo n.º 2
0
        public ScheduledTask(string name, Action method, TaskConcurrencyOptions concurrencyOptions)
        {
            Name = name;
              Method = method;
              ConcurrencyOptions = concurrencyOptions;

              ConcurrencyLock = new object();
        }
Ejemplo n.º 3
0
        public void AddDailyTask(string taskName, Action task, Time time, TaskConcurrencyOptions taskConcurrencyOptions)
        {
            var timeToStart = (DateTime.Today.Add(time.ToTimeSpan())) - DateTime.Now;

              if (timeToStart.Ticks < 0)
            timeToStart = timeToStart.Add(TimeSpan.FromDays(1));

              AddTask(taskName, task, timeToStart, TimeSpan.FromDays(1), taskConcurrencyOptions);
        }