如何使 Backgroundworker 中的进程在取消挂起事件时退出

How to make Process within Background worker to exit on CancellationPending event

我有一个由 UI 和后台工作者组成的应用程序。

后台工作人员执行以下任务:

  1. 创建进程并调用外部二进制文件 - 使用 System.Diagnostic.Process。
  2. 等待此进程退出。
  3. 用数据更新 UI。

这里的问题是外部 exe 是否挂起。他们无法取消我的后台进程。 由于我的后台工作人员正忙于等待其他进程完成,因此无法使用取消令牌。为了解决这个问题,我对我的进程使用了​​超时。此应用程序关闭后。

我的问题是有什么方法可以取消进程(由后台工作人员调用)以停止设置取消事件。

提前感谢您的时间和帮助。

我认为您可以使用 https://github.com/jamesmanning/RunProcessAsTask 实现此逻辑。使用此库,您可以

  1. 指定带超时的取消令牌
  2. 等待进程作为顺序任务而不阻塞线程。