views:

283

answers:

2

I've read a few posts here on StackOverflow about task scheduling, but I'm not sure that I get it right. I'm coding (in VB.Net) a backup application, that I'd like to add as a scheduled task (in fact, I'd just like to let the user decide to run it every day at, for example, 3 AM).

I've read posts suggesting to use a windows service for this, but it sounds a bit to much for something as simple as periodically running a task, isn't it?

Could you please advise me on how to simply set a scheduled task in VB.Net? I'm trying to keep my code as lightweight as possible.

+1  A: 

The best thing is to not write a scheduler, but use the built-in Windows scheduler to run your code.

More info:

http://support.microsoft.com/kb/308569

Note: if you schedule a task to run under an account other than your own, the application may not have access to network drives or some other resources. In other words, there may be some security challenges to work through, particularly for something like a backup app.

If this is just a personal app for backup, my recommendation would be to use XCOPY from a batch file rather than re-inventing the wheel.

richardtallent
Thanks!Yet, how can I create a task from the code itself? I'd like to let my users do it from my program settings window itself.
CFP
@CFP the links in my answer show exactly how to do just that
hawbsl
Thank you very much!
CFP
A: 

As RichardTallent says, don't write your own; instead hook into the Windows scheduler. It's not too difficult.

We used the libraries and examples here and here. Easy to use. Kudos to Eduardo Morcillo and Eric Moreau for showing the way.

hawbsl
Thanks! I'll have a look at this.
CFP