C# filesystemwatcher检查上次检测
我使用FileSystemWatcher监视.net中的文件夹,并触发创建、更改和重命名事件 在已创建和重命名的事件中,NotifyFilteris NotifyFilters.FileName 在已更改的事件中,它被设置为NotifyFilters.LastWrite 现在。。如果最后一次发射时间超过1秒,我不想发射这些事件。所以每次开火都要延迟1秒。这也意味着它可以跳过在此延迟之间更改/重命名/创建的文件。只是在被耽搁的时候什么也不做C# filesystemwatcher检查上次检测,c#,.net,vb.net,filesystemwatcher,C#,.net,Vb.net,Filesystemwatcher,我使用FileSystemWatcher监视.net中的文件夹,并触发创建、更改和重命名事件 在已创建和重命名的事件中,NotifyFilteris NotifyFilters.FileName 在已更改的事件中,它被设置为NotifyFilters.LastWrite 现在。。如果最后一次发射时间超过1秒,我不想发射这些事件。所以每次开火都要延迟1秒。这也意味着它可以跳过在此延迟之间更改/重命名/创建的文件。只是在被耽搁的时候什么也不做 我搜索并尝试了很多次,但都没有找到答案。创建一个时间戳,
我搜索并尝试了很多次,但都没有找到答案。创建一个时间戳,表示下一个处理事件的有效时间。然后,在事件处理程序中,对照该时间检查当前时间
Public Class MyClass
Dim NextValidTime as DateTime
public sub Some_Event_Handler()
If Now() > NextValidtime Then
'do stuff
NextValidTime = DateAdd(DateInterval.Second, 1, Now)
Else
' Not enough time has passed - do nothing
End If
end sub
End Class
犯错误请说明您遇到的问题;提供失败代码的代码示例。尽管存在误解,但SO不是一个教程站点,也不是一个可以请求他人为您执行功能请求和实现的社区。请花点时间复习委托、事件和事件处理的基本知识。我不知道如何获取上次启动文件的时间,并将延迟设置为1秒。我的代码是一个带有3个事件的简单文件系统观察程序。正如@DWRoelands在下面指出的,若您的条件是时间,那个么您将需要两个时间点进行比较。DateTime.Now和一个您自己的变量,如果您设置的条件满足true,您将为其分配DateTime.Now.AddSeconds+1。这并不能回答您的全部问题,因为您希望阻止事件触发。。这就是OOP的用武之地,以及您对委托、事件、事件参数和事件处理的理解。do应该是你自己的事件,你的班级将其指定给你。我在上面的评论中指出了这一点,但OP不打算基于这些条件提出事件。。所以do stuff将是一个raise事件语句,下面是示例中的eventArg声明。这正是我想要的。非常感谢。