【问题标题】:Windows Service timing C# [duplicate]Windows服务计时C# [重复]
【发布时间】:2013-10-02 15:34:57
【问题描述】:

我已经构建了一个 Windows 服务,它在启动时会从指定目录构建文件路径列表。然后我对这些文件进行一些处理并删除它们。我的问题是服务多久会建立一次这个列表?我们可以指定此服务查看目录并构建列表的时间间隔吗?

我创建一个控制台应用程序并将其分配给调度程序会更好吗?

【问题讨论】:

  • 该服务将根据您创建列表的频率进行构建。您可以将Timer 添加到服务中,以按照您想要的时间间隔重建列表。最好创建一个控制台应用程序并将其分配给调度程序。也不差。
  • 请参阅FileSystemWatcher 了解替代方法。
  • FileSystemWatcher 出了什么问题?
  • 是的,你可以指定一个时间间隔来做处理。一个带有睡眠延迟的简单循环就足够了。但在不知道您的实际要求的情况下,我不知道有谁能提供更多。
  • @KeithPayne 后台进程一次转储大约 3K 文件。我对每个文件进行数据库处理。不想使用在看到单个文件时激活的 FileSystemWatcher。然后我需要 3K 数据库连接。

标签: c# windows-services


【解决方案1】:

您可以在应用程序中设置计时器并随时运行您的方法。请参阅此问题以获得好的答案。

Best Timer for using in a Windows service

其他一些关于构建服务的有用 MSDN,包括关于 OnStartOnStop 的注释,您可能想利用它们。

ServiceBase

@Marius 还对FileSystemWatcher 提出了一个很好的观点,这是一个很棒但经常被忽视的.Net...FileSystemWatcher

【讨论】:

  • 这不是对 Windows 服务的准确描述。
  • 道歉......你是对的。我已经编辑出来了。无论如何,根据我的经验,控制台应用程序通常只是人们在构建新服务时倾向于开始的地方。
【解决方案2】:

这很可能是FileSystemWatcher 的完美用例,它“监听文件系统更改通知并在目录或目录中的文件更改时引发事件”。通过使用它,您可以避免手动安排文件或目录检查。

【讨论】:

  • 不知道他申请的目的是什么,怎么知道实时监控是完美的解决方案?
  • @CareyGregory 我没有,因此“最有可能”而不是“绝对”。
  • @MariusSchulz 后台进程一次转储大约 3K 文件。我对每个文件进行数据库处理。不想使用在看到单个文件时激活的 FileSystemWatcher。然后我需要 3K 数据库连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多