C# 如何使后台工作进程在CancellationPending事件时退出

C# 如何使后台工作进程在CancellationPending事件时退出,c#,multithreading,backgroundworker,C#,Multithreading,Backgroundworker,我有一个由UI和后台工作程序组成的应用程序 后台工作人员执行以下任务: 创建进程并调用外部二进制文件-使用System.Diagnostic.process 等待此进程退出 使用数据更新UI 这里的问题是外部exe是否挂起。他们没有办法取消我的后台进程。 由于我的后台工作人员正忙于等待其他进程完成,因此无法使用取消令牌。为了解决这个问题,我使用了进程超时。此应用程序关闭后 我的问题是,有没有办法取消设置取消事件时停止的进程(由后台工作人员调用) 提前感谢您的时间和帮助。我认为您可以使用。有了这个

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

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

  • 创建进程并调用外部二进制文件-使用System.Diagnostic.process
  • 等待此进程退出
  • 使用数据更新UI
  • 这里的问题是外部exe是否挂起。他们没有办法取消我的后台进程。 由于我的后台工作人员正忙于等待其他进程完成,因此无法使用取消令牌。为了解决这个问题,我使用了进程超时。此应用程序关闭后

    我的问题是,有没有办法取消设置取消事件时停止的进程(由后台工作人员调用)


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

    我认为您可以使用。有了这个图书馆,你可以

  • 指定具有超时的取消令牌
  • 将进程作为顺序任务等待,而不阻塞线程

  • 您可以随时更改进程。不使用取消令牌的原因是什么?@stefan是的,但我需要通过应用程序处理它,并且只有在进程停止时才终止hangs@DIlshodK ,取消令牌不起作用,因为后台工作人员正忙于等待进程退出。我需要一个建议,如果为WaitToExit设置超时是一个好选项,或者我们有其他更好的选项。因此,我们不必担心决定超时的最大限制非常感谢这个建议,这将帮助我至少解除对我的工人的封锁