问出生的好奇心这里的过程:反应到开始终止
我怎么会去被通知或轮询,看的时候正在终止的进程?
因此,我的应用程序可以侦听进程中的“终止开始”事件,例如,以跟踪特定进程需要平均关闭多长时间?
请注意,这不是与我的过程翻转杀死开关,这将是简单的是,但我的应用程序将只作为观察员。
任何帮助,将不胜感激:)
问出生的好奇心这里的过程:反应到开始终止
我怎么会去被通知或轮询,看的时候正在终止的进程?
因此,我的应用程序可以侦听进程中的“终止开始”事件,例如,以跟踪特定进程需要平均关闭多长时间?
请注意,这不是与我的过程翻转杀死开关,这将是简单的是,但我的应用程序将只作为观察员。
任何帮助,将不胜感激:)
我知道你做这个没有轮询的唯一方法就是通过WMI。网上有很多例子,例如Using WMI to monitor process creation, deletion and modification in .NET。
WMI被.net库包装得很好。例如,上面的示例使用ManagementEventWatcher
来订阅WMI事件。在System.Management
命名空间中有一个WMI善良的宝藏。
我真的不知道如果有一个这是一个“推”的操作(你以某种方式得到通知的结束进程)的方法。
但我会模仿这种观察做的是创建一个Windows服务,在指定的时间间隔内轮询进程(比如说,每隔2秒或无论多长时间都可以接受)。这样,当另一个过程结束并采取相应行动时,您可以处理这种情况。
再次,不需要轮询 –
我不知道是否有WIN32 API用于订阅终止的进程的事件,但你可以简单地通过获取进程列表中运行做投票:
var processes = System.Diagnostics.Process.GetProcesses();
我会用ProcessId
作为我的字典检查它何时启动以及何时终止的关键。
不需要轮询。改用WMI。 –
+1。是的,完全忘记了它全部暴露在WMI中。 – Aliostad
@Aliostad WMI,忘了Windows的宝石...... –