gpt4 book ai didi

c# - 获取有关 Windows 服务内部状态的信息

转载 作者:可可西里 更新时间:2023-11-01 13:26:19 28 4
gpt4 key购买 nike

我有一个用 .NET C# 编写的 Windows 服务。该服务将充当文件处理器。它只是监视文件创建事件的目录,并将这些文件添加到队列中进行处理。一个单独的线程从队列中提取文件并处理它们。

我的问题是是否有办法查询 Windows 服务以获取其“状态”。我希望能够以某种方式查询服务并查看当前在队列中等待的文件列表等。

我知道这可以在 Linux 中通过/proc 文件系统完成,我想知道 Windows 是否有类似的东西。任何提示/指针将不胜感激。

最佳答案

如果您正在寻找非 UI 方法(例如,将名称写入文件或标准输出),则可以在服务上使用 ExecuteCommand 方法。

  ServiceController sc = new ServiceController("ServiceName");
sc.ExecuteCommand(255);

这只是将此命令传递给您的服务,您的服务将通过 OnCustomCommand 处理它

protected override void OnCustomCommand(int command)
{
base.OnCustomCommand(command);
if (command == 255
{
... // Your code here
}
}

您可能需要将队列/服务状态存储在静态变量中,以便您可以从 OnCustomCommand 例程访问它。

关于c# - 获取有关 Windows 服务内部状态的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10690141/

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