最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

有時候,我們的程序需要啟動一些子進程,如嵌入的圖形程序。

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

如果要完全退出相關進程,就需要查找主進程下的所有子進程,并結束所有進程:

/// <summary>
 /// 結束進程和相關的子進程
 /// </summary>
 /// <param name="pid">需要結束的進程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 */
   }
 }

查找進程ID的方法:

//1.根據進程id,獲得進程
Process p = Process.GetProcessById(100);
//2.獲取當前進程
Process p = Process.GetCurrentProcess();
//3.根據進程名字獲取進程,返回的結果是一個數組
Process p = (Process.GetProcessesByName("DriverEasy"))[0];

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

以上就是如何在C# 中查找或結束程序域中的主、子進程的詳細內容,更多關于c# 程序域的資料請關注腳本之家其它相關文章!

相關文章

  • C#線程倒計時器源碼分享

    C#線程倒計時器源碼分享

    這篇文章主要為大家分享了C#線程倒計時器源碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C#中的HttpWebRequest類用法詳解

    C#中的HttpWebRequest類用法詳解

    本文詳細講解了C#中的HttpWebRequest類的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • c#異步task示例分享(異步操作)

    c#異步task示例分享(異步操作)

    這篇文章主要介紹了c#異步task示例(異步操作),需要的朋友可以參考下
    2014-03-03
  • C#發(fā)送HttpPost請求來調用WebService的方法

    C#發(fā)送HttpPost請求來調用WebService的方法

    在C#中發(fā)送HttpPost請求來調用WebService中的MyAction方法,代碼如下:需要的朋友可以參考一下
    2013-03-03
  • C#使用log4net結合sqlite數據庫實現(xiàn)記錄日志

    C#使用log4net結合sqlite數據庫實現(xiàn)記錄日志

    因為結構化的數據庫存儲的日志信息,可以寫專門的軟件讀取歷史日志信息,通過各種條件篩選,可操作性極大增強,有這方面需求的開發(fā)人員可以考慮,本文給大家介紹了C#使用log4net結合sqlite數據庫記錄日志,需要的朋友可以參考下
    2024-10-10
  • C#?wpf定義ViewModelBase進行簡化屬性綁定

    C#?wpf定義ViewModelBase進行簡化屬性綁定

    綁定機制是wpf的核心,也是界面獨立的根本,尤其是使用了mvvm模式,本文主要介紹了wpf如何定義ViewModelBase進行簡化屬性綁定,需要的可以參考下
    2024-04-04
  • C#操作注冊表之RegistryKey類

    C#操作注冊表之RegistryKey類

    這篇文章介紹了C#操作注冊表之RegistryKey類,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#中的yield關鍵字的使用方法介紹

    C#中的yield關鍵字的使用方法介紹

    yield這個關鍵字是和迭代器掛鉤的,而且是與return一起以yield return的形式合用的,用來返回迭代器中的條目。
    2013-04-04
  • VMS中解協(xié)議常用方法備忘(小結)

    VMS中解協(xié)議常用方法備忘(小結)

    這篇文章主要介紹了VMS中解協(xié)議常用方法備忘(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • C#把整個文件內容讀入字符串變量的方法

    C#把整個文件內容讀入字符串變量的方法

    這篇文章主要介紹了C#把整個文件內容讀入字符串變量的方法,實例分析了C#操作文件與字符串的相關技巧,需要的朋友可以參考下
    2015-07-07

最新評論

河津市| 雅江县| 清流县| 涟水县| 阿拉善左旗| 任丘市| 儋州市| 瓦房店市| 绥江县| 凤山县| 垣曲县| 平泉县| 全南县| 西乌珠穆沁旗| 靖江市| 沭阳县| 灵丘县| 宕昌县| 阿鲁科尔沁旗| 昌宁县| 湖州市| 阿坝| 宁河县| 鄂州市| 海安县| 东源县| 迭部县| 天台县| 锡林浩特市| 阿拉尔市| 临泽县| 治多县| 利辛县| 南通市| 太仆寺旗| 盐山县| 南溪县| 芮城县| 金溪县| 新和县| 沙洋县|