国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C# > 正文

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

2020-01-24 01:30:17
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了C#獲取進(jìn)程或線程相關(guān)信息的方法。分享給大家供大家參考。具體實(shí)現(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("啟動(dòng)時(shí)間:" + 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)程打開(kāi)的句柄數(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)先級(jí):" + pro.BasePriority.ToString());   Console.WriteLine("提升優(yōu)先級(jí):" + 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("未分頁(yè)內(nèi)存大小:" + pro.NonpagedSystemMemorySize.ToString());   Console.WriteLine("分頁(yè)內(nèi)存大小:" + pro.PagedMemorySize.ToString());   Console.WriteLine("峰值分頁(yè)內(nèi)存大小:" + pro.PeakPagedMemorySize.ToString());   Console.WriteLine("虛擬內(nèi)存大小:" + pro.VirtualMemorySize.ToString());   Console.WriteLine("峰值虛擬內(nèi)存大小:" + pro.PeakVirtualMemorySize.ToString());   Console.WriteLine("占用時(shí)間:" + pro.TotalProcessorTime.ToString());   Console.WriteLine("特權(quán)占用時(shí)間:" + pro.PrivilegedProcessorTime.ToString());   Console.WriteLine("用戶占用時(shí)間:" + 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)識(shí)符:" + thread.Id.ToString());    Console.WriteLine("基本優(yōu)先級(jí):" + thread.BasePriority.ToString());    Console.WriteLine("當(dāng)前優(yōu)先級(jí):" + thread.CurrentPriority.ToString());    Console.WriteLine("內(nèi)存地址:" + thread.StartAddress.ToInt32());    Console.WriteLine("啟動(dòng)時(shí)間:" + thread.StartTime.ToString());    Console.WriteLine("使用時(shí)間:" + thread.UserProcessorTime.ToString());    Console.Write("當(dāng)前狀態(tài):");    switch (thread.ThreadState)    {     case ThreadState.Initialized:      Console.WriteLine("線程已經(jīng)初始化但尚未啟動(dòng)");      break;     case ThreadState.Ready:      Console.WriteLine("線程準(zhǔn)備在下一個(gè)可用的處理器上運(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("線程正在等待事件對(duì)高");       break;      case ThreadWaitReason.EventPairLow:       Console.WriteLine("線程正在等待事件對(duì)低");       break;      case ThreadWaitReason.ExecutionDelay:       Console.WriteLine("線程執(zhí)行延遲");       break;      case ThreadWaitReason.Executive:       Console.WriteLine("線程正在等待計(jì)劃程序");       break;      case ThreadWaitReason.FreePage:       Console.WriteLine("線程正在等待可用的虛擬內(nèi)存頁(yè)");       break;      case ThreadWaitReason.LpcReceive:       Console.WriteLine("線程正在等待本地過(guò)程調(diào)用到達(dá)");       break;      case ThreadWaitReason.LpcReply:       Console.WriteLine("線程正在等待對(duì)本地過(guò)程調(diào)用的回復(fù)到達(dá)");       break;      case ThreadWaitReason.PageIn:       Console.WriteLine("線程正在等待虛擬內(nèi)存頁(yè)到達(dá)內(nèi)存");       break;      case ThreadWaitReason.PageOut:       Console.WriteLine("線程正在等待虛擬內(nèi)存頁(yè)寫入磁盤");       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("線程正在等待用戶請(qǐng)求");       break;      case ThreadWaitReason.VirtualMemory:       Console.WriteLine("線程正在等待系統(tǒng)分配虛擬內(nèi)存");       break;      default:       break;     }    }    Console.WriteLine();    }  }  /// <summary>  /// 限制應(yīng)用程序運(yùn)行時(shí)間  /// 即關(guān)聯(lián)程序超出設(shè)置的運(yùn)行將自動(dòng)關(guān)閉  /// </summary>  public static void GetKillAppForWaitTime()  {   Process proc = new Process();   proc.StartInfo = new ProcessStartInfo(@"C:/Documents and Settings/zkk/桌面/mysql_20120925.sql");   //啟動(dòng)應(yīng)用程序   proc.Start();   //等待程序師徒完成載入   proc.WaitForInputIdle();   //等待程序結(jié)束執(zhí)行   proc.WaitForExit(3000);   //如果程序在時(shí)間期限之前關(guān)閉,HasExited將會(huì)是true   if (proc.HasExited == false)   {    //測(cè)試程序是否已經(jīng)停止回應(yīng)    if (proc.Responding)    {     //程序有回應(yīng),關(guān)閉主視圖     proc.CloseMainWindow();    }    else    {     //如果程序沒(méi)有回應(yīng),將強(qiáng)制關(guān)閉     proc.Kill();    }   }  } }}

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳西县| 河西区| 汕头市| 屏边| 奈曼旗| 安福县| 江口县| 嵩明县| 宁远县| 都匀市| 武汉市| 南京市| 攀枝花市| 开平市| 湖南省| 宝山区| 鄂托克旗| 平利县| 连江县| 凤翔县| 芜湖市| 偃师市| 荣成市| 浑源县| 宿迁市| 莱州市| 百色市| 长宁区| 清水县| 高台县| 新建县| 怀化市| 徐闻县| 桃园县| 石景山区| 佛教| 巩义市| 潜山县| 长乐市| 芷江| 沙坪坝区|