gpt4 book ai didi

c# - 进程退出/关闭/终止后关闭第三方SDK

转载 作者:太空宇宙 更新时间:2023-11-03 15:26:46 25 4
gpt4 key购买 nike

我编写了一个 C# 应用程序,它使用 System.Diagnostics.Process 类创建一个进程,使用

var process = Process.Start(startInfo);

该流程由 ServiceInvoker 调用。该服务根据其持续时间调用第三方 DLL。

等待一定时间后,我终止进程,

process.Kill();

即使在终止进程后,如果 DLL 正在执行,它也不会停止。

Kill 不会调用进程的 OnExit 事件。那么在这种情况下如何停止 DLL 的执行。

在此问题上的任何帮助都是值得赞赏的。

最佳答案

也许您需要终止进程及其子进程?

    /// <summary>
/// Kill a process, and all of its children, grandchildren, etc.
/// </summary>
/// <param name="pid">Process ID.</param>
private static void KillProcessAndChildren(int pid)
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher
("Select * From Win32_Process Where ParentProcessID=" + pid);
ManagementObjectCollection moc = searcher.Get();
foreach (ManagementObject mo in moc)
{
KillProcessAndChildren(Convert.ToInt32(mo["ProcessID"]));
}
try
{
Process proc = Process.GetProcessById(pid);
proc.Kill();
}
catch (ArgumentException)
{
// Process already exited.
}
}

关于c# - 进程退出/关闭/终止后关闭第三方SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35034771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com