To start with, just for your reference:
http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx[
^],
http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx[
^],
http://msdn.microsoft.com/en-us/library/system.windows.forms.timer.aspx[
^],
http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatchertimer.aspx[
^] (this one is less known; and it can be used with Forms as well, not only with WPF, as well as
Dispatcher
).
Those are four different timer classes you could use. First read the MSDN help to see what's better for you. Still, consider working with additional thread.
And finally, let's remember that you are talking about the backup. This could make all the timers not quite suitable, as well as the "scheduling thread". You might need a better approach, a special one.
Usually, backup is done according to some schedule.
And you don't need to write your own Windows Service. The Service you need already exists, called
Windows Task Scheduler, see:
http://en.wikipedia.org/wiki/Task_Scheduler[
^],
http://msdn.microsoft.com/en-us/library/aa383614.aspx[
^],
http://msdn.microsoft.com/en-us/library/aa384006%28v=VS.85%29.aspx[
^].
See the last link above for use of the Windows Task Scheduler. You can use its API in your program using
Task Scheduler Managed Wrapper, see
http://taskscheduler.codeplex.com/[
^].
But if can be even simpler. You can use Windows Task Scheduler using Windows utilities AT.EXE or SchTasks.EXE, see:
http://en.wikipedia.org/wiki/At_(Windows)[
^],
http://technet.microsoft.com/en-us/library/bb490866.aspx[
^],
http://en.wikipedia.org/wiki/Schtasks[
^],
http://msdn.microsoft.com/en-us/library/windows/desktop/bb736357%28v=vs.85%29.aspx[
^].
—SA