StartSchedule() публичный Метод

public StartSchedule ( DateTimeOffset lastKnownEvent = default(DateTimeOffset) ) : void
lastKnownEvent DateTimeOffset
Результат void
Пример #1
0
        ScheduledTask AddTaskImpl(
            string name,
            Schedule schedule,
            ScheduledTaskCallback callback,
            ScheduledTaskAsyncCallback asyncCallback,
            bool autoRun,
            DateTimeOffset lastKnownEvent,
            TimeSpan window)
        {
            if (schedule == null)
            {
                throw new ArgumentNullException(nameof(schedule));
            }

            if (name == null)
            {
                name = Guid.NewGuid().ToString();
            }

            ScheduledTask task;

            lock (_lockTasks)
            {
                if (IsShuttingDown)
                {
                    throw new Exception("Cannot add a task to Schtick after Shutdown() has been called.");
                }

                if (_tasks.ContainsKey(name))
                {
                    throw new Exception($"A scheduled task named \"{name}\" already exists.");
                }

                task = new ScheduledTask(this, name, schedule, callback, asyncCallback)
                {
                    Window     = window,
                    IsAttached = true,
                };

                _tasks.Add(name, task);
            }

            task.OnException += TaskOnOnException;

            if (autoRun)
            {
                task.StartSchedule(lastKnownEvent);
            }

            return(task);
        }
Пример #2
0
        private ScheduledTask AddTaskImpl(
            string name,
            Schedule schedule,
            ScheduledTaskCallback callback,
            ScheduledTaskAsyncCallback asyncCallback,
            bool autoRun,
            DateTimeOffset lastKnownEvent,
            TimeSpan window)
        {
            if (schedule == null)
                throw new ArgumentNullException(nameof(schedule));

            if (name == null)
                name = Guid.NewGuid().ToString();
            
            ScheduledTask task;
            lock (_lockTasks)
            {
                if (IsShuttingDown)
                    throw new Exception("Cannot add a task to Schtick after Shutdown() has been called.");

                if (_tasks.ContainsKey(name))
                    throw new Exception($"A scheduled task named \"{name}\" already exists.");

                task = new ScheduledTask(this, name, schedule, callback, asyncCallback)
                {
                    Window = window,
                    IsAttached = true,
                };

                _tasks.Add(name, task);
            }

            task.OnException += TaskOnOnException;

            if (autoRun)
                task.StartSchedule(lastKnownEvent);

            return task;
        }