首页 > 解决方案 > UWP 如何通知进程终止?

问题描述

对于 UWP,我正在寻找类似于 .NETSystem.Diagnostics.Process的功能来通知进程的终止,例如:

process.EnableRaisingEvents = true;
process.Exited += Process_Exited;

...

private static void Process_Exited(object sender, EventArgs e)
{
    var process = (Process)sender;
    // Do some stuff
}

目前,我能够计算出Windows.System.Diagnostics.ProcessDiagnosticInfo代表我需要的“过程”的对象。问题是,该Windows.System.Diagnostics.ProcessDiagnosticInfo类型不提供可以告诉我“嘿,这个过程已经结束”的机制(事件等)。

是否有任何 UWP 的 API 支持它?

标签: c#uwpdiagnostics

解决方案


不幸的是,到目前为止,似乎没有可用的 UWP API。ProcessDiagnosticInfo提供有关进程的基本信息,似乎没有任何方法可以进一步操纵它(例如连接事件)。此外,即使 UWP 现在支持 .NET Standard,但与此相关的类System.Diagnostics.Process大多会抛出PlatformNotSupported异常,大概是出于安全原因。

我现在可以看到的唯一选择是重复查询正在运行的进程列表,并检查您正在观看的进程是否仍在列出。当然,这不是最好的解决方案,因为您不会立即收到通知,因此如果您想要更快的反馈,您必须更频繁地执行检查。


推荐阅读