私は C# サービスを作成しています。その主な機能は、データベースから写真を取得し、1 日に 2 回ディレクトリに保存することです。通常、この操作には約 15 分かかります (写真がたくさんあります)。プログラムを実行するロジックを OnStart() に入れると、サービスを開始してから 1 分ほど後に、サービスが正常に開始されなかったことが報告されます。これは、OnStart() メソッド内にある時間が長すぎるためです。
約 1 分後に RunApp() メソッドを呼び出す OnStart() メソッドでタイマーを設定するにはどうすればよいですか?
編集:ここにいくつかのコードがあります。毎日実行するスケジューラーを設定した後、単純に実行したいです。タイマーを約 1 分間設定すると、OnStart() メソッドから抜け出す時間ができるようになると考えました。タイマーがオフになると、アプリが実行されます。
protected override void OnStart(string[] args)
{
Scheduler sch = new Scheduler("Photo Sync");
try
{
MailConfiguration mailConfig = new MailConfiguration(Properties.Settings.Default.EmailLogTo, Properties.Settings.Default.EmailLogFrom,
"Photo Sync Photo Service error", Properties.Settings.Default.SmtpServerIp, "Photo Sync");
sch.MailComponent = mailConfig;
}
catch
{
}
sch.SchedulerFired += new EventHandler(RunApp);
try
{
sch.ScheduleDaily(Properties.Settings.Default.DailyScheduledTime);
}
RunApp();
}