【发布时间】:2013-08-09 08:16:21
【问题描述】:
我想知道下面的代码 sn-p 是否正确:
Logger.Debug("Check file exists for corresponding path: {0}.", filePath);
var timeDeadline = DateTime.Today + Settings.Default.FileDeadline; //Timespan type
while (!File.Exists(filePath))
{
if (DateTime.Now > timeDeadline)
Logger.Error("The file is not available: {0}.", filePath);
Logger.Info("The file is not yet available. Waiting for 1 hour...");
Thread.Sleep(TimeSpan.FromHours(1));
}
此代码的目的是使用 Windows 任务计划程序在清晨安排它以加载通常在 9:00 左右出现但可能会延迟数小时且最后需要在 14:30 之前的文件(FileDeadline ) 如果仍然丢失,我会将丢失的文件报告为错误。
我也可以每小时抛出一个异常,并允许 windows 任务每小时重新启动进程,但我认为最好让 C# 拥有进程的所有控制权。缺点是线程休眠一小时并且有一个计划任务运行小时。我不介意使用的资源是否可以忽略不计,但我认为一些更有经验的程序员可能有更优雅的解决方案。
【问题讨论】:
标签: c# file-upload scheduled-tasks polling thread-sleep