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

时间:2013-05-21 11:27:40

标签: c# .net node.js clickonce monitoring

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

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

我能想到这样做的唯一方法:

  1. 启动应用程序时创建text / xml文件
  2. 使用有关其处理的每个对象的当前状态的信息更新文本文件
  3. 在应用程序处理完毕后删除文本文件
  4. 对我而言,这似乎不是一种非常好或有效的方法。有没有办法检测ClickOnce应用程序是否正在运行,或许可以通过其他方式访问“消息”或其中的日志以显示进度?

    注意 - 我也在考虑使用NodeJS来做这件事,但不确定它是否具备此功能。

2 个答案:

答案 0 :(得分:4)

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

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

或者,您可以查看使用custom performance counters。这将打开使用System Monitor/perfmon作为监控工具的大门,因此无需编写任何客户端代码。

答案 1 :(得分:1)

至少有两种方法可以实现这一目标:

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

  2. 实施IPC机制。有不同的方法可以做到这一点。它可以帮助您查看 What is the easiest way to do inter process communication in C#?