gpt4 book ai didi

filesystems - 如何让 FileSystemWatcher 线程永远运行?

转载 作者:行者123 更新时间:2023-12-04 10:46:16 27 4
gpt4 key购买 nike

我需要在无限循环中运行 FileSystemWatcher 来监视文件的更改,但此文件只会每隔几天更改一次,并且可能每周仅更改一次。在 FileSystemWatcher 的 MSDN 示例中,当用户没有在控制台输入 q 时有一个循环:

while(Console.Read()!='q');

我不希望它一直可用,所以它不会被意外杀死 - 它必须在没有用户干预的无限循环中运行。我是否必须将循环更改为
while (true);

所以线程不退出?仅此一项并不理想,因为它会固定 CPU - 添加 Thread.Sleep 调用将消除 CPU 负载,在这种情况下,可能是长时间休眠,因为文件很少更改。这是最好的方法吗?我应该如何确保该线程保持事件状态,以便 FileSystemWatcher 可以在文件更改时采取行动?这是在 Windows 服务器上运行(使用 .NET 框架版本 2.0),因此如有必要,可以将其设为 Windows 服务。

最佳答案

如果这是在服务器上运行,则服务似乎是一个不错的选择。

如果你想要一些更具交互性的东西,我有一个小应用程序,它位于我的系统托盘中,当我们的问题文件夹中发生某些事情时,它会向我显示。它使用 Application.Run() 方法在不需要循环的情况下保持自身运行,即

class MainEntryClass
{
static void Main(string[] args)
{
FolderAlerter fa = new FolderAlerter();
Application.Run();
}
}

然后我在 FolderAlerter 中设置了我的 FileSystemWatcher。

关于filesystems - 如何让 FileSystemWatcher 线程永远运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/660135/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com