SDF 2.1 Preview – Get LIT
Ever have a business scenario where you want your application to perform some task on a periodic basis but the period will be very long – maybe days, weeks or even months? You want it to occur if the device is asleep or aware at the time? Well we’ve got a new SDF class that’s designed for this: the LargeIntervalTimer (or LIT).
Let’s look at a simple scenario. Let’s say I’m writing a custom calendar. I want to set up a recurring meeting. Well let’s say the first meeting will be tomorrow at the same time as it is now (for simplicity) and then every 7 days after that. We want the device to do something on that period (presumably make a noise, vibrate or whatever.
The LIT is specially designed for this type of scenario. The code to do achieve that scenario would look like this:
// we want the first timer event o happen 1 day from now
m_lit.FirstEventTime = DateTime.Now.AddDays(1);
// after the first event, we want it to fire every 7 days
m_lit.Interval = new TimeSpan(7, 0, 0, 0);
// we want it to be recurring
m_lit.OneShot = false;
// wire up a handler
m_lit.Tick += new EventHandler(LIT_Tick);
// start the timer
m_lit.Enabled = true;
That’s it. No P/Invokes. No ugly Notifications, threads, events or whatever. We’ve swept all that ugliness under the rug for you so all you need to do it implement your app.