Windows サービス アプリケーションを作成するのはこれが初めてで、一定の間隔で複数のタスクを実行するためのさまざまなアプローチについて少し読んでいます。1 つは 1 日 1 回、もう 1 つは 1 分ごとです。
私が結論付けたのは、TimedCallBack と System.threating.timer タイマーを使用することでした。
エレガントではない例
private void DailyTask(object state) {
//do something daily
}
private void IntervalTask(object state) {
//do something else
}
private void OnStart() {
TimedCallBack dailyTcb = DailyTask;
TimedCallBack intervalTcb = IntervalTask;
System.Threading.Timer dailyTimer = new Timer(dailyTcb, null, 0, 86400000);
System.Threading.Timer intervalTimer = new Timer(intervalTcb, null, 0, 60000);
}
private void OnStop() {
intervalTimer.Dispose();
dailyTimer.Dispose();
}
質問
1) タイマーは、タスクの完了後に時計を開始しますか? 実行するたびに完了するのにある程度の時間がかかる場合、どれがゆっくりと 1 日を過ぎてしまうのでしょうか? マイナス 24 時間を実行するのにかかった時間を特定する必要があるとしたら、どちらを想定しますか?
2)これは、2 つの単純なタスクに対する完全に優れたアプローチです。
ありがとう