c# - 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 支持它?
解决方案
不幸的是,到目前为止,似乎没有可用的 UWP API。ProcessDiagnosticInfo
提供有关进程的基本信息,似乎没有任何方法可以进一步操纵它(例如连接事件)。此外,即使 UWP 现在支持 .NET Standard,但与此相关的类System.Diagnostics.Process
大多会抛出PlatformNotSupported
异常,大概是出于安全原因。
我现在可以看到的唯一选择是重复查询正在运行的进程列表,并检查您正在观看的进程是否仍在列出。当然,这不是最好的解决方案,因为您不会立即收到通知,因此如果您想要更快的反馈,您必须更频繁地执行检查。
推荐阅读
- apache-spark - Spark 中的第一阶段行动仅由一个执行者运行
- botframework - MS TEAMS 聊天机器人:我可以将我的 MS Botframework 聊天机器人限制为仅使用我的 MS Teams 租户 ID 而不需要额外的身份验证吗
- sql - Oracle 选择不同的合并重复项
- java - 当blockingqueue为空时杀死消费者
- java - 在java中加密文件的内容而无需手动指定加密密钥
- reactjs - 在 REACT APP 中使用高效的缓存策略服务静态资产
- r - Opencage 包,无法进行批量地理编码工作
- performance - 将调试构建模式更改为发布构建模式时没有性能提升?
- html - 在 flexbox 中排序 flex 项目
- reactjs - 在 React.Js 中创建一个组件作为另一个组件的子组件