欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何在C# 中查找或結(jié)束程序域中的主、子進(jìn)程

 更新時(shí)間:2020年11月09日 08:36:30   作者:一只獨(dú)行的猿  
這篇文章主要介紹了如何在C# 中查找或結(jié)束程序域中的主、子進(jìn)程,幫助大家更好的理解和使用c#編程語言,感興趣的朋友可以了解下

有時(shí)候,我們的程序需要啟動(dòng)一些子進(jìn)程,如嵌入的圖形程序。

當(dāng)啟動(dòng)一個(gè)進(jìn)程后,獲得這個(gè)進(jìn)程信息Process,然后其內(nèi)部在某個(gè)時(shí)刻啟動(dòng)了一個(gè)子進(jìn)程,這個(gè)時(shí)候就涉及程序域和進(jìn)程樹的概念。當(dāng)我們通過非正常操作的方式結(jié)束前面獲得的進(jìn)程信息Process時(shí)(如Kill掉),可能并沒有實(shí)際結(jié)束子進(jìn)程。因?yàn)楫?dāng)有主進(jìn)程啟動(dòng)了子進(jìn)程后,所有的進(jìn)程實(shí)際上是被放在程序域中運(yùn)行的(winform的Program文件中的Application域中),而結(jié)束的僅僅是域中的某個(gè)進(jìn)程。當(dāng)然,如果我們正常推出主進(jìn)程,實(shí)際上Application在推出時(shí),做了很多操作,以結(jié)束整個(gè)域中的信息;如果采用捕捉的Process結(jié)束,Application并沒有完全執(zhí)行退出(使用Application的Exit事件,可以檢驗(yàn))。

如果要完全退出相關(guān)進(jìn)程,就需要查找主進(jìn)程下的所有子進(jìn)程,并結(jié)束所有進(jìn)程:

/// <summary>
 /// 結(jié)束進(jìn)程和相關(guān)的子進(jìn)程
 /// </summary>
 /// <param name="pid">需要結(jié)束的進(jìn)程ID</param>
 public 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);
     Console.WriteLine(pid);
     proc.Kill();
   }
   catch (ArgumentException)
   {
     /* process already exited */
   }
 }

查找進(jìn)程ID的方法:

//1.根據(jù)進(jìn)程id,獲得進(jìn)程
Process p = Process.GetProcessById(100);
//2.獲取當(dāng)前進(jìn)程
Process p = Process.GetCurrentProcess();
//3.根據(jù)進(jìn)程名字獲取進(jìn)程,返回的結(jié)果是一個(gè)數(shù)組
Process p = (Process.GetProcessesByName("DriverEasy"))[0];

其中,以上代碼需要先引入System.Management.dll(在Framework中找到相關(guān)引用);再引入命令空間:System.Management;

以上就是如何在C# 中查找或結(jié)束程序域中的主、子進(jìn)程的詳細(xì)內(nèi)容,更多關(guān)于c# 程序域的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#?調(diào)用外部exe的三種方式

    C#?調(diào)用外部exe的三種方式

    調(diào)用外部exe是常用的功能,本文主要介紹了C#?調(diào)用外部exe的三種方式,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • C#使用DoddleReport快速生成報(bào)表

    C#使用DoddleReport快速生成報(bào)表

    這篇文章介紹了C#使用DoddleReport快速生成報(bào)表的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#使用虛擬方法實(shí)現(xiàn)多態(tài)

    C#使用虛擬方法實(shí)現(xiàn)多態(tài)

    這篇文章主要介紹了C#使用虛擬方法實(shí)現(xiàn)多態(tài),涉及C#多態(tài)的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05
  • C#遍歷文件夾獲取指定后綴名文件

    C#遍歷文件夾獲取指定后綴名文件

    這篇文章主要為大家詳細(xì)介紹了C#遍歷文件夾獲取指定后綴名文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 利用C#操作WMI指南

    利用C#操作WMI指南

    WMI提供了一套內(nèi)置在Microsoft Windows操作系統(tǒng)中的豐富的系統(tǒng)管理服務(wù),可以在有大量的應(yīng)用程序、服務(wù)和設(shè)備的系統(tǒng)中提供全方位的管理功能。它允許應(yīng)用程序的開發(fā)者,使用簡單的、一致的機(jī)制,去查詢企業(yè)中的任一臺計(jì)算機(jī)上的信息,或是進(jìn)行系統(tǒng)配置
    2016-11-11
  • C#中使用jieba.NET、WordCloudSharp制作詞云圖的步驟

    C#中使用jieba.NET、WordCloudSharp制作詞云圖的步驟

    之前一篇文章介紹的是使用Python的jieba、wordcloud的庫生成詞云圖,本文則介紹在C#中如何使用jieba.NET、WordCloudSharp庫生成詞云圖,感興趣的朋友一起看看吧
    2021-07-07
  • unity3d實(shí)現(xiàn)七天簽到功能

    unity3d實(shí)現(xiàn)七天簽到功能

    這篇文章主要為大家詳細(xì)介紹了unity3d實(shí)現(xiàn)七天簽到功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • c#實(shí)現(xiàn)幾種數(shù)據(jù)庫的大數(shù)據(jù)批量插入

    c#實(shí)現(xiàn)幾種數(shù)據(jù)庫的大數(shù)據(jù)批量插入

    這篇文章主要介紹了c#實(shí)現(xiàn)幾種數(shù)據(jù)庫的大數(shù)據(jù)批量插入,主要包括SqlServer、Oracle、SQLite和MySQL,有興趣的可以了解一下。
    2017-01-01
  • Visual Stodio2022中沒有mysql.dll的解決辦法

    Visual Stodio2022中沒有mysql.dll的解決辦法

    這篇文章介紹了Visual Stodio2022中沒有mysql.dll的解決辦法,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • C#利用緩存分塊讀寫大文件

    C#利用緩存分塊讀寫大文件

    這篇文章主要為大家詳細(xì)介紹了C#利用緩存分塊讀寫大文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05

最新評論