2

有没有办法监控控制台应用程序的状态?

我正在尝试构建一个用户界面,显示控制台应用程序当前是否在服务器上运行(处理文件)。如果它正在运行,我想显示当前状态:处理了多少文件,当前正在处理什么文件等。

我能想到的唯一方法是:

  1. 应用程序启动时创建文本/xml 文件
  2. 使用它处理的每个对象的当前状态信息更新文本文件
  3. 应用程序完成处理后删除文本文件

对我来说,这似乎不是一个很好或有效的方法。有没有办法检测 ClickOnce 应用程序是否正在运行,也许还有其他方法可以访问“消息”或它的日志以显示进度?

注意 - 我也在考虑使用 NodeJS 来执行此操作,但不确定它是否具有此功能。

4

2 回答 2

4

首先,您应该考虑将其编写为Windows 服务而不是控制台应用程序。

也就是说,抓取应用程序正在编写的日志文件是一种合理的方法。只要确保它永远不会变得太大。

或者,您可以查看使用自定义性能计数器。这将为使用System Monitor/perfmon作为监控工具打开大门,因此无需编写任何客户端代码。

于 2013-05-21T11:36:14.283 回答
1

至少有两种方法可以实现:

  1. 您的控制台应用程序在运行期间会写入一些日志、一些状态文件,因此其他进程可以读取这些文件并了解该控制台进程中发生的情况。

  2. 实施IPC机制。有不同的方法可以做到这一点。它可以帮助您查看在 C# 中进行进程间通信的最简单方法是什么?.

于 2013-05-21T11:32:17.947 回答