【问题标题】:C# - File Watcher as a windows service watching multiple directoriesC# - File Watcher 作为 Windows 服务监视多个目录
【发布时间】:2013-12-23 01:39:27
【问题描述】:

我有一个问题,我似乎找不到解决方案。我正在使用 FileSystemWatcher 在 C# 中编写文件观察程序 Windows 服务。我想观看多个独立的目录,我有要观看的目录和 xml 文件中的一些其他设置。程序读取 xml,创建适当数量的 FileSystemWatchers 并将这些系统观察程序存储在字典中,并使用随机生成的 id 号(作为键)。我遇到的问题是只有第一个 FileSystemWatcher 正在响应正在创建/删除/更新的文件等。我知道其他人已经创建,因为条目在字典中。我知道 EnableRaisingEvents = true 因为所有 FileSystemWatcher 都是通过循环以相同的方式创建的。我不知道如何让多个文件观察器正常工作,如果可能的话,我想避免使用线程。如果有人有任何想法或资源可以查看,将不胜感激。

【问题讨论】:

  • 如果您不显示任何代码,很难看出可能出了什么问题...
  • 这个概念有效。我刚刚编写了一个成功监听两个目录的控制台应用程序。 (也许你一遍又一遍地配置一个观察者,但哈希中有很多观察者) PS - 你的“我知道”的理由非常薄弱。你只知道你可以通过调试器或跟踪输出看到的内容是真实的(甚至只有在行星没有错位时才知道)
  • 您可以尝试在 codeproject 上查看此示例,codeproject.com/Articles/271669/…

标签: c# windows service filesystemwatcher directory


【解决方案1】:

我担心你必须实例化某种线程池或任务工厂,因为文件观察器只能观察线程中的一个文件。

然而,这篇文章有一个很好的例子: How to assign separate thread for each File System Watcher?

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多