none
System.OutOfMemoryException: 指定的缓冲区大小过大。FileSystemWatcher 无法为内部缓冲区分配 8192 个字节。 RRS feed

  • 问题

  • 我有个winform应用程序,24小时在运行,因为某些需要程序里面实现了下面的代码:

    if (watcher == null)
       {

    watcher = new System.IO.FileSystemWatcher();
     watcher.Path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory);
     watcher.Filter = "*.txt";
     watcher.Changed += new System.IO.FileSystemEventHandler(watcher_Changed);
    watcher.IncludeSubdirectories = true;
       watcher.EnableRaisingEvents = true;

    }

    上述代码的目的就是监控这些txt文件,如果这些文件发生更改,就触发事件释放并重新读取此监控的文件。

    现在的问题是:这个代码经常抛异常

    System.OutOfMemoryException: 指定的缓冲区大小过大。FileSystemWatcher 无法为内部缓冲区分配 8192 个字节。    
    在 System.IO.FileSystemWatcher.Monitor(IntPtr bufferPtr)    
    在 System.IO.FileSystemWatcher.StartRaisingEvents()    
    在 System.IO.FileSystemWatcher.set_EnableRaisingEvents(Boolean value)

    请问坛友们知道抛出System.OutOfMemoryException异常的原因么?

    难道watcher被多次实例化引起的?

    请各位坛友帮忙分析下原因,谢谢

    2010年12月24日 7:32

全部回复