2011-01-14 16 views
1

私は実際に、日時を指定して何らかの方法を実行することができる何らかのコンポーネントがほしいと思ったいくつかのプロジェクトに取り組んでいます。.Net長時間実行予定のコードの実行

DateTime date = new DateTime(x,x,x,x,x,x); 
ScheduledMethod sMethod = new ScheduledMethod(date, [method delegate of some sort]); 

\\at the specified date, sMethod invokes [method delegate of some sort] 

私は特定のものに適して長時間実行されるプロセスとしてWindowsワークフロー財団でこれを行うことができますことを知っているが、いずれの選択肢がありますか。ワークフローは細かい点ではまっすぐなものではありません。軽量な作業のためにもっと簡単なものを展開することができればうれしいでしょう。たとえば、ネットワークフォルダを1日1回チェックし、30日以上経過したファイルを削除する方法があります。これは空の夢であるかもしれませんが、これは特定の日常的なメンテナンスタスク(スケジュールされたSQL操作、ファイルシステムのクレンジング、日常的な電子メール送信など)を自動化するために非常に便利です。必ずしも.Netである必要はありませんが、それは私がどこから来ているのかです。何か案は?

+0

Windowsサービスは、常に実行する必要があるアプリケーションである必要があります。スケジュールされたタスクは、将来いつか短時間だけ実行されるアプリケーションでなければなりません。これは、スケジュールされたタスクによって最も適切に処理されます。 – Will

答えて

3

try windowsタスクスケジューラ。必要なタスクを実行し、タスクスケジューラでスケジュールして、指定した間隔で実行するC#でプログラムを記述します。フォルダからファイルを削除するなどの作業は非常にうまくいきます。

2

私は通常、タスクのコンソールアプリケーションを作成し、それをWindowsのスケジュールされたタスクとして構成します。それは通常完璧にうまくいく。適切なログをアプリケーションに追加すると、問題が発生した場合に簡単にトラブルシューティングを行うことができます。

1

Microsoftには、アンマネージコードhttp://msdn.microsoft.com/en-us/library/aa383614(v=VS.85).aspxのタスクスケジューラインターフェイスがあります。ただし、マネージライブラリが必要な場合は、Microsoft Task Scheduler http://www.codeproject.com/KB/cs/tsnewlib.aspxまたは.NET用エンタープライズジョブスケジューラQuartzNetのラッパーを使用できます。

+0

Quartz.NETは私の使い方が素晴らしいです。 –

関連する問題