我有一个Windows服务,目前正在实例化大约十几个FileSystemWatcher实例,以监控整个公司网络中的共享文件夹,以便处理文件.
我正在考虑添加更多实例,所以我想知道这里是否有人(生产系统)有关FileSystemWatcher生产系统可以可靠处理的实例数量的实际限制是什么?
编辑:在我的情况下,不修改InternalBufferSize属性,因此InternalBufferSize是默认的8 KB ...我假设InternalBufferSize的增加会影响FileSystemWatcher系统可以同时运行的实例数,因此这也是方程的一部分. ..
编辑:如果您认为这仅仅是一个资源问题,它只取决于系统的可用内存量或其他一些硬件方面,请分享您的经验或链接到证实您的意见的文档或文章...我会真的很想听听那些在生产中达到极限的人,无论他们的硬件规格如何,所以请在投票之前仔细考虑其他7个人在不到20分钟的时间内表示有兴趣听取那些推动限制的人...
当许多文件同时添加到目录时,FileSystemWatcher无法正常工作......
Watcher根本找不到目录中的所有文件 - 只有当文件一个接一个地放在文件夹中时 - 而不是同时将大量文件复制到文件夹中...
Threads的创建是问题的解决方案还是有另一种方法来处理问题?
我目前正在尝试使用FileSystemWatcher类排除目录,尽管我已经使用过:
FileWatcher.Filter = "C:\\$Recycle.Bin";
Run Code Online (Sandbox Code Playgroud)
和
FileWatcher.Filter = "$Recycle.Bin";
Run Code Online (Sandbox Code Playgroud)
编译好了,但是当我尝试这个时没有显示结果.
如果我取出过滤器,所有文件加载正常,代码如下:
static void Main(string[] args)
{
string DirPath = "C:\\";
FileSystemWatcher FileWatcher = new FileSystemWatcher(DirPath);
FileWatcher.IncludeSubdirectories = true;
FileWatcher.Filter = "*.exe";
// FileWatcher.Filter = "C:\\$Recycle.Bin";
// FileWatcher.Changed += new FileSystemEventHandler(FileWatcher_Changed);
FileWatcher.Created += new FileSystemEventHandler(FileWatcher_Created);
// FileWatcher.Deleted += new FileSystemEventHandler(FileWatcher_Deleted);
// FileWatcher.Renamed += new RenamedEventHandler(FileWatcher_Renamed);
FileWatcher.EnableRaisingEvents = true;
Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)