FileSystemWatcher在一段时间后停止引发事件

本文关键字:事件 一段时间 FileSystemWatcher | 更新日期: 2023-09-27 18:01:49

我们已经用FileSystemWatcher建立了一个监听文件夹的窗口服务,当创建时我们处理文件等等。但几天后,这个活动就停止了。

  • 是否有可能被垃圾收集器(GC)收集?
  • GC收集它持有类(这是一个单例)吗?
  • 我应该使用弱事件吗?
  • 我有一个bug,这意味着事件得到未注册?

我认为问题是,FSW有一个内部缓冲区,当它溢出时是一个错误,看看这篇文章提供的代码来解决这个问题。

FileSystemWatcher在一段时间后停止引发事件

可以尝试以下几种方法:

  • 在计时器滴答事件处理程序中,在进行滴答事件处理之前停止计时器,并在退出处理程序之前重新启动计时器
  • 将计时器代码包装在try/catch块中以查看发生了什么。
  • 在Windows服务错误描述/修复中读取System.Timers.Timer类的Elapsed事件,看看这是否对您有帮助。
在简介:

protected virtual void TimerTick(object sender, EventArgs e)
{
    // stop your timer
    this.timer.Stop();
    try
    {
        // TODO: add event handler specifics
    }
    catch
    {
        // TODO: add some logging to help you see what's going on
    }        
    // restart your timer
    this.timer.Start();
}