Create a Scheduler programatically

Thursday, September 13, 2007

This sample shows how to create a Scheduler programatically in C# with DemiCode Scheduler.

Sample code

using System;
using DemiCode.Scheduling;
using DemiCode.Scheduling.Alarms;
using DemiCode.Scheduling.Schedules;

public class Sample
{
    private Scheduler _scheduler;

    public void StartHere()
    {
        // 1. Create a scheduler
        _scheduler = SchedulerFactory.Create();

        // 2. Create a schedule
        ISchedule schedule = new OneShotSchedule(new DateTime(2007, 7, 1, 15, 30, 0));

        // 3. and add it to the scheduler
        _scheduler.Add(schedule);

        // 4. Hook up to events
        _scheduler.ScheduledAlarm += new EventHandler<AlarmEventArgs>(OneShot_Alarm);

        // 5. Start the engine
        _scheduler.Start();
    }

    private void OneShot_Alarm(object sender, AlarmEventArgs e)
    {
        Console.WriteLine(
            "Scheduler. Event alarm time {0}, signaled at {1:yyyy-MM-dd HH:mm:ss:ff}",
            e.SignalTime, e.ActualSignalTime);
    }
}

To use the code, create an instance of the Sample class, and call the StartHere method.

Sample s = new Sample();
s.StartHere();