5 分ごとに正確に実行する方法が必要です。タイマーが徐々に同期しなくなることに気づいたので、タイマーを使用できません (つまり、最終的には 00:01、00:06、00:11、00:16 などに実行されます)。
正確である必要はありますが、あまり正確である必要はありません。5 分 +/- 1 秒ごとに問題はありませんが、何日も実行した後でも、5 分のマークを正確に刻みます。
これまでに考えたことは、DateTime.Now を常にチェックして次の 5 分マークが過ぎたかどうかを確認する 1 秒間隔のタイマーを作成することです。私が見逃したC#ライブラリに、よりエレガントなソリューションや何かがあるかどうか疑問に思っています。
編集:現在、次のテンプレートがあり、要件に対応しています。
public class ThreadTest
{
private Thread thread;
private long nextExecutionTime;
private long interval;
public void StartThread(long intervalInMillis)
{
interval = intervalInMillis * TimeSpan.TicksPerMillisecond;
nextExecutionTime = DateTime.Now.Ticks;
thread = new Thread(Run);
thread.Start();
}
private void Run()
{
while (true)
{
if (DateTime.Now.Ticks >= nextExecutionTime)
{
nextExecutionTime += interval;
// do stuff
}
}
}
}