C# filesystemwatcher检查上次检测

C# filesystemwatcher检查上次检测,c#,.net,vb.net,filesystemwatcher,C#,.net,Vb.net,Filesystemwatcher,我使用FileSystemWatcher监视.net中的文件夹,并触发创建、更改和重命名事件 在已创建和重命名的事件中,NotifyFilteris NotifyFilters.FileName 在已更改的事件中,它被设置为NotifyFilters.LastWrite 现在。。如果最后一次发射时间超过1秒,我不想发射这些事件。所以每次开火都要延迟1秒。这也意味着它可以跳过在此延迟之间更改/重命名/创建的文件。只是在被耽搁的时候什么也不做 我搜索并尝试了很多次,但都没有找到答案。创建一个时间戳,

我使用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声明。这正是我想要的。非常感谢。