1

私は現在、いくつかのプロジェクトに取り組んでいます。ここでは、日時を指定して、ある種のメソッドを実行できる、ある種のコンポーネントがあればいいのにと思っています。

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]

長時間実行するプロセスとしてWindowsWorkflowFoundationを使用してこれを実行できることは知っていますが、これは特定のことに適していますが、代替手段はありますか?ワークフローは詳細が正確に単純ではないため、軽量タスク用にもっと単純なものをデプロイできると便利です。たとえば、ネットワークフォルダを1日1回チェックし、30日以上経過したファイルを削除する方法があります。これは夢のようなパイかもしれませんが、これは特定のありふれた保守タスク(スケジュールされたSQL操作、ファイルシステムのクレンジング、定期的な電子メール送信など)を自動化するのに非常に役立ちます。必ずしも.Netである必要はありませんが、それが私の出身です。何か案は?

4

4 に答える 4

3

Windowsタスクスケジューラを試してください。目的のタスクを実行するプログラムをC#で作成し、タスクスケジューラで指定された間隔で実行するようにスケジュールします。フォルダからファイルを削除するなどの場合、これは非常にうまく機能します。

于 2011-01-14T14:50:20.203 に答える
3

WindowsサービスまたはWindowsのスケジュールされたタスクを展開できます。

また、このSOの質問を参照してください。

于 2011-01-14T14:50:30.447 に答える
2

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

于 2011-01-14T14:50:47.250 に答える
1

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

于 2011-01-14T15:02:31.013 に答える