6

タスクとそのスケジュールのリストを用意します。タスク1-毎日午後12時タスク2-月曜日、水曜日-午後9時スケジュールに従ってそれらを解雇したいとします。

それらをタスクスケジューラまたはc#の他のスケジューラ\タイマーに一意のコンテキスト(タスクID)で登録することは可能ですか?そして、コールバック(たとえばイベント)時に、コンテキストからtaskidを取得し、taskidを使用して、アクションをトリガーできます。

基本的に、スケジュールされた時刻が渡されたコンテキストと一致したときにコールバックする必要があります。そして、私のコードは、そのスケジュールされた時間中に何をしなければならないかを最もよく知っています。

4

1 に答える 1

3

quartz.netを使ってみませんか。このスケジューラーは、タスクID、さらにはスケジューリングのコンテキストをサポートします。優れたドキュメントと多くの例もあります。

これはタスク(別名ジョブ)の例です。実行のコンテキストはスケジューラーから送信されます。

public class DumbJob : IJob
{
    public DumbJob() {
    }

    public void Execute(JobExecutionContext context)
    {
        Console.WriteLine("DumbJob is executing.");
    }
}

ところで、ガベージコレクションを避けるために、スケジューラを静的にすることを忘れないでください。私はすでにこの問題に遭遇しました。

于 2012-11-16T08:18:59.263 に答える