【发布时间】:2015-08-05 07:32:23
【问题描述】:
我正在开发 .NET Web 应用程序,该应用程序也在后台运行不同的作业。这些后台作业更新数据库、创建报告文件、删除旧文件等。
作业按计划触发,并且计划程序本身通过 Windows 的任务计划程序每小时触发一次。
到目前为止,我一直通过将消息记录到 Windows 事件查看器来监视作业的状态,但是这种方法非常麻烦。 我想实现一个带有 GUI 的新程序,该程序将与作业通信并监视它们的活动。启动时 gui 应显示以下信息:
- 状态(运行与空闲)
- 进度条(“24% 完成”、“23423 个项目中的 327 个已完成”)
gui.exe 应该独立于 jobs.exe 运行(启动或停止 gui 不应影响作业,反之亦然)。
我正在寻找建议,在 jobs.exe 和 gui.exe 之间共享信息的最佳方式是什么
【问题讨论】:
-
“什么是共享信息的最佳方式”有很多方法:对于特定用途,哪种方式更好(我怀疑任何一种都是“最好的”)取决于细节。就我个人而言,我会关注 WMI,因为它可以启用远程和命令行(自动)监控。还希望公开性能计数器。
-
不要重新发明轮子。使用操作系统的机制——性能计数器、Windows 事件等。.NET 已经支持它们。有很多工具(GUI 和其他工具)使用它们进行仪表板、警报、监控等