UWP 如何通知进程终止?

UWP How to notify of Process's termination?

对于 UWP,我正在寻找类似于 .NET System.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
}

目前,我能够计算出代表我需要的 'the Process' 的 Windows.System.Diagnostics.ProcessDiagnosticInfo 对象。问题是,Windows.System.Diagnostics.ProcessDiagnosticInfo 类型不提供可以告诉我 'Hey, this process has been ended'.

的机制(事件等)

UWP API 是否支持它?

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

我现在能看到的唯一选择是反复查询运行进程列表,看看你正在看的进程是否还在列表中。当然,这不是最好的解决方案,因为你不会立即得到通知,所以如果你想要更快的反馈,你必须更频繁地执行检查。