我遇到了 TerminateProcess()功能的问题。 该应用程序我正在编写一个JobScheduler应用程序,用于在特定时间安排和启动作业。 为此,我使用 CreateProcess()来执行我的JobLauncher。
JobLauncher进程然后启动一个控制台程序(使用createprocess),它有效地执行作业可执行文件,等待终止并监视持续时间,用户和内核时间等。
为了从JobScheduler中终止作业,我首先开始使用TerminateProcess(),但它不允许我正确关闭可执行文件。我的意思是我发现无法挂钩任何终止事件。
在找到比残酷的 TerminateProcess()更好的方法之前,我在调用程序中使用 GenerateConsoleCtrlEvent()编写了一个中间解决方案。
在启动目标作业可执行文件的作业应用程序中,我使用 SetConsoleCtrlHandler()安装了一个处理程序。 在处理程序中,我可以终止作业的过程并正确地通知我的第三方。 这是我现在找到的更好的解决方案。
有没有更好的方法来编程并正确关闭流程? 你这个解决方案是完全荒谬的吗? 我不是一个“系统级”专业开发人员......
Ž。