これは Windows サービスの私のコードです...しかし、残念ながら、メソッド myTimer_Elapsed() は、少なくとも 60 秒後にのみ呼び出されます。サービス開始後。サービスを切り替えたらすぐ始めませんか?
public partial class MyService : ServiceBase
{
private System.Threading.Thread myWorkingThread;
private System.Timers.Timer myTimer = new System.Timers.Timer();
protected override void OnStart(string[] args)
{
myWorkingThread = new System.Threading.Thread(PrepareTask);
myWorkingThread.Start();
}
private void PrepareTask()
{
myTimer.Elapsed += new System.Timers.ElapsedEventHandler(myTimer_Elapsed);
myTimer.Interval = 60000;
myTimer.Start();
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
}
void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
..my code to prepare binary db files
BinaryDB rdr = new BinaryDB();
rdr.ReadFile(...)
}
}