我有一个每5分钟读取一个文件的应用程序。当程序启动时,它会读取文件,一旦完成,它就会启动一个计时器。一旦5分钟过去,计时器就会停止并再次读取文件。
我想检查文件是否在该时间段内被修改过,如果不是,则不会读取该文件。
目前,我有以下代码:
DateTime dtFile = File.GetLastWriteTime(file);
DateTime now = DateTime.Now;
long sub = (long)(now - dtFile).TotalMilliseconds;
if(sub <= timer1.Interval)
{
// the code goes here
}
我的问题是我的进程有多个要读取的文件,然后这个过程可能需要几分钟。
因此,如果第一个文件在上午10:00完成执行并且所有文件的处理在上午10:05结束,则计时器将在上午10:05开始。 所以计时器将在上午10:10停止。
如果第一个读取文件在上午10:02被修改,则不会被读取,因为计时器在上午10:05完全处理结束时开始运行。因此,上午10:02的修改后的文件将超出期限。
答案 0 :(得分:0)
它只是一种方法,但我建议这样做。 创建一个包含以下属性的新类: - 公共字符串,用于文件的路径 - 日期时间,用于存储上次检查时间 - 计时器对象
现在创建一个构造函数,定义路径,开始时间以及定义和启用计时器。
在应用程序启动时或者您现在可以为每个文件实例化一个对象。现在每个物体都有一个独立的计时器,因此不会再干扰彼此。