2011-01-05 4 views
3

ユーザが設定可能なスケジュールで繰り返しタスクを実行するツールを作成する必要があります。私はC#3.5でそれを書き、XP、Windows 7、またはWindows Server 2008上で動作します。タスクは完了するまでに約20分かかります。ユーザは、例えば、毎日、毎週、毎月のようないくつかの構成を設定したいと思うだろう。タスクスケジューラの使用はオプションではありません。定期的なタスクスケジューラの作成に役立つ

ユーザーは、Outlookの定期的な予定ダイアログと同様のインターフェイスを使用して再発をスケジュールします。彼らがスケジュールを設定したら、それを起動し、システムトレイに座り、指定された時間にタスクを開始し、終了したことを示すメールを送信する必要があります。

それがリソースを食べないように、ホストをロック、またはその他の不正な動作、これを書くための最良の方法は何ですか?

答えて

4

あなたができる最良のことは、OSが提供するものを利用してホイールを改革することを避けることです。 Bart De Smetの記事Calling the Task Scheduler in Windows Vista (and Windows Server 2008) from managed codeを参照してください。これはC#のWindowsタスクスケジューラの使い方を示しています。

何らかの理由であなた自身のサービス(例えば、依存関係をより制御する)を実装する必要がある場合は、オープンソースのCron実装を.NET互換言語で見ていきたいと思います。これを行うと思われるコードプロジェクトImplementing a small Cron service in C#というコードプロジェクトの記事があります。彼の記事An Event Based Cron (Scheduled) Job In C#に基づいて、Bob Cravensはこの分野でもっと徹底した仕事をしたか、少なくとも仕事をより完全に文書化したようです。あなたが周りを見回すと他の人がいると確信しています.Cronに基づいたものは良い出発点です。

+0

優秀!私が探していたもの – Sisiutl

1

私はスケジュールを取得し、 あなたはデシベルに必要なものは何でも書くためのGUIを追加しますが、

System.Timers.Timer 

なく

を使用することを忘れないようにSQLiteのDBを使用してWindowsサービスを書いてお勧めします
System.Windows.Forms.Timer 

お客様のWindowsサービスで

関連する問題