gpt4 book ai didi

c# - 使用 CreateProcessAsUser 时等待进程退出

转载 作者:太空狗 更新时间:2023-10-29 22:24:48 25 4
gpt4 key购买 nike

我在 C# 中使用 CreateProcessAsUser 通过服务启动进程我的服务需要等待进程退出,但我不知道该怎么做,我不想使用检查进程列表中的进程存在

最佳答案

PROCESS_INFORMATION将句柄返回给新创建的进程 (hProcess),您可以等待这个句柄,当进程退出时它会发出信号。

您可以使用 SafeWaitHandle封装句柄然后使用WaitHandle.WaitOne等待进程退出。

这是包装进程句柄的方式

class ProcessWaitHandle : WaitHandle
{
public ProcessWaitHandle(IntPtr processHandle)
{
this.SafeWaitHandle = new SafeWaitHandle(processHandle, false);
}
}

然后下面的代码可以在句柄上等待

ProcessWaitHandle waitable = new ProcessWaitHandle(pi.hProcess);
waitable.WaitOne();

关于c# - 使用 CreateProcessAsUser 时等待进程退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2980423/

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