我正在编写一个 C# 服务,它的主要功能是从数据库中提取照片并每天两次将它们保存到一个目录中。此操作通常需要大约 15 分钟(有很多照片)。如果我将运行程序的逻辑放在 OnStart() 中,则在启动服务大约一分钟后报告它没有成功启动。这是因为它在 OnStart() 方法中的时间过长。
如何在 OnStart() 方法中设置一个计时器,大约一分钟后将调用我的 RunApp() 方法?
编辑:这是一些代码。在设置了让它每天运行的调度程序之后,我还想简单地运行它。我认为将计时器设置为大约一分钟会起作用,这样它就有时间退出 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();
}