c# 控制台应用程序中止时如何终止子进程?
我有一个控制台应用程序,它使用 WMI ManagementClass 生成其他 win32 进程。当用户通过 proc explorer 或按 ctrl+c 终止控制台应用程序时,我有一个要求,应用程序应终止它创建的所有子进程。什么是最好的实现这个目标的方法?
I have a console application that spawns other win32 processes using WMI ManagementClass.I have a requirement when a user kills the console application through proc explorer or by pressing ctrl+c ,the application should terminate all the child processes it created.What is the best way to achive this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
请记住,您必须考虑您的需求,您可以按照下面的示例进行操作。
Keeping in mind that you have to take in your needs into account, you can do it like the sample below.
如果子进程有消息队列(Win32消息泵),您可以将WM_CLOSE发送到其主窗口,或者定义您自己的消息。否则,您可以使用套接字、管道或事件等同步对象来设计进程间通知。
最糟糕的方法是终止子进程。
If the sub-process has a message queue (Win32 message pumping), you can post WM_CLOSE to its main window, or define your own message. Otherwise, you can design your inter-process notification by using Sockets, Pipes, or Synchronization objects like Events.
The worst way is to kill the sub-processes.