欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

如何在C# 中查找或结束程序域中的主、子进程

程序员文章站 2022-06-23 21:25:12
有时候,我们的程序需要启动一些子进程,如嵌入的图形程序。当启动一个进程后,获得这个进程信息process,然后其内部在某个时刻启动了一个子进程,这个时候就涉及程序域和进程树的概念。当我们通过非正常操作...

有时候,我们的程序需要启动一些子进程,如嵌入的图形程序。

当启动一个进程后,获得这个进程信息process,然后其内部在某个时刻启动了一个子进程,这个时候就涉及程序域和进程树的概念。当我们通过非正常操作的方式结束前面获得的进程信息process时(如kill掉),可能并没有实际结束子进程。因为当有主进程启动了子进程后,所有的进程实际上是被放在程序域中运行的(winform的program文件中的application域中),而结束的仅仅是域中的某个进程。当然,如果我们正常推出主进程,实际上application在推出时,做了很多操作,以结束整个域中的信息;如果采用捕捉的process结束,application并没有完全执行退出(使用application的exit事件,可以检验)。

如果要完全退出相关进程,就需要查找主进程下的所有子进程,并结束所有进程:

查找进程id的方法:

其中,以上代码需要先引入system.management.dll(在framework中找到相关引用);再引入命令空间:system.management;

以上就是如何在c# 中查找或结束程序域中的主、子进程的详细内容,更多关于c# 程序域的资料请关注其它相关文章!