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

C#獲取進(jìn)程或線程相關(guān)信息的方法

 更新時間:2015年08月24日 17:54:17   作者:我心依舊  
這篇文章主要介紹了C#獲取進(jìn)程或線程相關(guān)信息的方法,涉及C#操作進(jìn)程及線程的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了C#獲取進(jìn)程或線程相關(guān)信息的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ConsoleApp
{
 class ProcessDo
 {
  /// <summary>
  /// 獲取進(jìn)程相關(guān)信息
  /// </summary>
  public static void GetProcessInfomation()
  {
   Process pro = Process.GetProcessesByName("QQ")[0];
   Console.WriteLine("進(jìn)程名稱:" + pro.ProcessName);
   Console.WriteLine("進(jìn)程ID:" + pro.Id.ToString());
   Console.WriteLine("啟動時間:" + pro.StartTime.ToLongDateString() + pro.StartTime.ToLongTimeString());
   Console.WriteLine("是否響應(yīng):" + pro.Responding.ToString());
   Console.WriteLine("關(guān)聯(lián)進(jìn)程句柄:" + pro.Handle.ToString());
   Console.WriteLine("進(jìn)程打開的句柄數(shù):" + pro.HandleCount.ToString());
   Console.WriteLine("主窗口句柄:" + pro.MainWindowHandle.ToString());
   Console.WriteLine("主窗口標(biāo)題:" + pro.MainWindowTitle);
   Console.WriteLine("模塊數(shù)量:" + pro.Modules.Count.ToString());
   Console.WriteLine("基本優(yōu)先級:" + pro.BasePriority.ToString());
   Console.WriteLine("提升優(yōu)先級:" + pro.PriorityBoostEnabled.ToString());
   Console.WriteLine("處理器:" + pro.ProcessorAffinity.ToInt32().ToString());
   Console.WriteLine("最小工作集:" + pro.MinWorkingSet.ToInt32().ToString());
   Console.WriteLine("最大工作集:" + pro.MaxWorkingSet.ToInt32().ToString());
   Console.WriteLine("工作集:" + pro.WorkingSet.ToString());
   Console.WriteLine("峰值工作集:" + pro.PeakWorkingSet.ToString());
   Console.WriteLine("專用內(nèi)存大小:" + pro.PrivateMemorySize.ToString());
   Console.WriteLine("未分頁內(nèi)存大?。? + pro.NonpagedSystemMemorySize.ToString());
   Console.WriteLine("分頁內(nèi)存大小:" + pro.PagedMemorySize.ToString());
   Console.WriteLine("峰值分頁內(nèi)存大?。? + pro.PeakPagedMemorySize.ToString());
   Console.WriteLine("虛擬內(nèi)存大小:" + pro.VirtualMemorySize.ToString());
   Console.WriteLine("峰值虛擬內(nèi)存大?。? + pro.PeakVirtualMemorySize.ToString());
   Console.WriteLine("占用時間:" + pro.TotalProcessorTime.ToString());
   Console.WriteLine("特權(quán)占用時間:" + pro.PrivilegedProcessorTime.ToString());
   Console.WriteLine("用戶占用時間:" + pro.UserProcessorTime.ToString());
  }
  /// <summary>
  /// 進(jìn)程的線程詳細(xì)信息
  /// </summary>
  public static void GetProcessThreadInfomation()
  {
   Process pro = Process.GetProcessesByName("QQ")[0];
   Console.WriteLine("QQ程序進(jìn)程的線程詳細(xì)信息如下:");
   int length = pro.Threads.Count;
   for (int i = 0; i < length; i++)
   {
    var thread = pro.Threads[i];
    Console.WriteLine("標(biāo)識符:" + thread.Id.ToString());
    Console.WriteLine("基本優(yōu)先級:" + thread.BasePriority.ToString());
    Console.WriteLine("當(dāng)前優(yōu)先級:" + thread.CurrentPriority.ToString());
    Console.WriteLine("內(nèi)存地址:" + thread.StartAddress.ToInt32());
    Console.WriteLine("啟動時間:" + thread.StartTime.ToString());
    Console.WriteLine("使用時間:" + thread.UserProcessorTime.ToString());
    Console.Write("當(dāng)前狀態(tài):");
    switch (thread.ThreadState)
    {
     case ThreadState.Initialized:
      Console.WriteLine("線程已經(jīng)初始化但尚未啟動");
      break;
     case ThreadState.Ready:
      Console.WriteLine("線程準(zhǔn)備在下一個可用的處理器上運(yùn)行");
      break;
     case ThreadState.Running:
      Console.WriteLine("當(dāng)前正在使用處理器");
      break;
     case ThreadState.Standby:
      Console.WriteLine("線程將要使用處理器");
      break;
     case ThreadState.Terminated:
      Console.WriteLine("線程已完成執(zhí)行并退出"); 
      break;
     case ThreadState.Transition:
      Console.WriteLine("線程在可以執(zhí)行錢等待處理器之外的資源");
      break;
     case ThreadState.Unknown:
      Console.WriteLine("狀態(tài)未知");
      break;
     case ThreadState.Wait:
      Console.WriteLine("正在等待外圍操作完成或者資源釋放");
      break;
     default:
      break;
    }
    if (thread.ThreadState == ThreadState.Wait)
    {
     Console.Write("等待原因:");
     switch (thread.WaitReason)
     {
      case ThreadWaitReason.EventPairHigh:
       Console.WriteLine("線程正在等待事件對高");
       break;
      case ThreadWaitReason.EventPairLow:
       Console.WriteLine("線程正在等待事件對低");
       break;
      case ThreadWaitReason.ExecutionDelay:
       Console.WriteLine("線程執(zhí)行延遲");
       break;
      case ThreadWaitReason.Executive:
       Console.WriteLine("線程正在等待計劃程序");
       break;
      case ThreadWaitReason.FreePage:
       Console.WriteLine("線程正在等待可用的虛擬內(nèi)存頁");
       break;
      case ThreadWaitReason.LpcReceive:
       Console.WriteLine("線程正在等待本地過程調(diào)用到達(dá)");
       break;
      case ThreadWaitReason.LpcReply:
       Console.WriteLine("線程正在等待對本地過程調(diào)用的回復(fù)到達(dá)");
       break;
      case ThreadWaitReason.PageIn:
       Console.WriteLine("線程正在等待虛擬內(nèi)存頁到達(dá)內(nèi)存");
       break;
      case ThreadWaitReason.PageOut:
       Console.WriteLine("線程正在等待虛擬內(nèi)存頁寫入磁盤");
       break;
      case ThreadWaitReason.Suspended:
       Console.WriteLine("線程執(zhí)行暫停");
       break;
      case ThreadWaitReason.SystemAllocation:
       Console.WriteLine("線程正在等待系統(tǒng)分配");
       break;
      case ThreadWaitReason.Unknown:
       Console.WriteLine("線程因位置原因而等待");
       break;
      case ThreadWaitReason.UserRequest:
       Console.WriteLine("線程正在等待用戶請求");
       break;
      case ThreadWaitReason.VirtualMemory:
       Console.WriteLine("線程正在等待系統(tǒng)分配虛擬內(nèi)存");
       break;
      default:
       break;
     }
    }
    Console.WriteLine();
    }
  }
  /// <summary>
  /// 限制應(yīng)用程序運(yùn)行時間
  /// 即關(guān)聯(lián)程序超出設(shè)置的運(yùn)行將自動關(guān)閉
  /// </summary>
  public static void GetKillAppForWaitTime()
  {
   Process proc = new Process();
   proc.StartInfo = new ProcessStartInfo(@"C:\Documents and Settings\zkk\桌面\mysql_20120925.sql");
   //啟動應(yīng)用程序
   proc.Start();
   //等待程序師徒完成載入
   proc.WaitForInputIdle();
   //等待程序結(jié)束執(zhí)行
   proc.WaitForExit(3000);
   //如果程序在時間期限之前關(guān)閉,HasExited將會是true
   if (proc.HasExited == false)
   {
    //測試程序是否已經(jīng)停止回應(yīng)
    if (proc.Responding)
    {
     //程序有回應(yīng),關(guān)閉主視圖
     proc.CloseMainWindow();
    }
    else
    {
     //如果程序沒有回應(yīng),將強(qiáng)制關(guān)閉
     proc.Kill();
    }
   }
  }
 }
}

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

  • Unity之繞軸進(jìn)行旋轉(zhuǎn)的操作

    Unity之繞軸進(jìn)行旋轉(zhuǎn)的操作

    這篇文章主要介紹了Unity之繞軸進(jìn)行旋轉(zhuǎn)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • unity實現(xiàn)多點觸控代碼

    unity實現(xiàn)多點觸控代碼

    這篇文章主要介紹了unity實現(xiàn)多點觸控代碼,我最近在學(xué)習(xí)Unity游戲引擎。先從Unity平面開始,本章介紹Unity 平面上的多點觸摸。有需要的小伙伴參考下。
    2015-03-03
  • C#設(shè)置Word文本框中改變文字方向的方法

    C#設(shè)置Word文本框中改變文字方向的方法

    在Word中可插入文本框,默認(rèn)情況下插入的文本框中的文字方向為橫向排列,對于一些特殊文檔的設(shè)計要求,需要改變文字方向,本文就詳細(xì)的介紹一下使用,感興趣的可以了解一下
    2021-06-06
  • C#實現(xiàn)對象的序列化和反序列化

    C#實現(xiàn)對象的序列化和反序列化

    這篇文章介紹了C#實現(xiàn)對象序列化和反序列化的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • C# 圖片剪切與縮小的實例

    C# 圖片剪切與縮小的實例

    C# 剪切圖片與縮小的實例,需要的朋友可以參考一下
    2013-04-04
  • ToLua框架下C#與Lua代碼的互調(diào)操作

    ToLua框架下C#與Lua代碼的互調(diào)操作

    這篇文章主要介紹了ToLua框架下C#與Lua代碼的互調(diào)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • C#類型轉(zhuǎn)換之自定義隱式轉(zhuǎn)換和顯式轉(zhuǎn)換

    C#類型轉(zhuǎn)換之自定義隱式轉(zhuǎn)換和顯式轉(zhuǎn)換

    本文主要為大家介紹了一個新的類型轉(zhuǎn)換方法:通過自定義隱式轉(zhuǎn)換,把不一樣的數(shù)據(jù)類型反序列化為一樣的數(shù)據(jù)類型,需要的同學(xué)可以參考一下
    2022-03-03
  • C#中使用WinRAR實現(xiàn)加密壓縮及解壓縮文件

    C#中使用WinRAR實現(xiàn)加密壓縮及解壓縮文件

    這篇文章主要介紹了C#中使用WinRAR實現(xiàn)加密壓縮及解壓縮文件,本文直接給出實例代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下
    2015-07-07
  • C#用NPOI導(dǎo)出導(dǎo)入Excel幫助類

    C#用NPOI導(dǎo)出導(dǎo)入Excel幫助類

    這篇文章主要為大家詳細(xì)介紹了C#?NPOI導(dǎo)出導(dǎo)入Excel幫助類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Qt之調(diào)用C#的動態(tài)庫的解決方法

    Qt之調(diào)用C#的動態(tài)庫的解決方法

    這篇文章給大家介紹了Qt之調(diào)用C#的動態(tài)庫的解決方法,環(huán)境使用的是VS2019+Qt5.12,感興趣的朋友一起看看吧
    2021-10-10

最新評論

许昌县| 长垣县| 郎溪县| 疏勒县| 龙游县| 巩义市| 广德县| 娄烦县| 县级市| 德阳市| 苍南县| 息烽县| 三门县| 西宁市| 长泰县| 育儿| 临清市| 子洲县| 永胜县| 吉木萨尔县| 嵊州市| 郑州市| 崇阳县| 霍州市| 岢岚县| 天水市| 岳池县| 社旗县| 南召县| 大关县| 乐至县| 卢氏县| 湟中县| 项城市| 大宁县| 临夏市| 巴青县| 湖口县| 独山县| 临朐县| 县级市|