激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - C#獲取進程或線程相關信息的方法

C#獲取進程或線程相關信息的方法

2021-10-21 11:46我心依舊 C#

這篇文章主要介紹了C#獲取進程或線程相關信息的方法,涉及C#操作進程及線程的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
namespace ConsoleApp
{
 class ProcessDo
 {
  /// <summary>
  /// 獲取進程相關信息
  /// </summary>
  public static void GetProcessInfomation()
  {
   Process pro = Process.GetProcessesByName("QQ")[0];
   Console.WriteLine("進程名稱:" + pro.ProcessName);
   Console.WriteLine("進程ID:" + pro.Id.ToString());
   Console.WriteLine("啟動時間:" + pro.StartTime.ToLongDateString() + pro.StartTime.ToLongTimeString());
   Console.WriteLine("是否響應:" + pro.Responding.ToString());
   Console.WriteLine("關聯進程句柄:" + pro.Handle.ToString());
   Console.WriteLine("進程打開的句柄數:" + pro.HandleCount.ToString());
   Console.WriteLine("主窗口句柄:" + pro.MainWindowHandle.ToString());
   Console.WriteLine("主窗口標題:" + pro.MainWindowTitle);
   Console.WriteLine("模塊數量:" + pro.Modules.Count.ToString());
   Console.WriteLine("基本優先級:" + pro.BasePriority.ToString());
   Console.WriteLine("提升優先級:" + 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("專用內存大小:" + pro.PrivateMemorySize.ToString());
   Console.WriteLine("未分頁內存大?。?quot; + pro.NonpagedSystemMemorySize.ToString());
   Console.WriteLine("分頁內存大?。?quot; + pro.PagedMemorySize.ToString());
   Console.WriteLine("峰值分頁內存大?。?quot; + pro.PeakPagedMemorySize.ToString());
   Console.WriteLine("虛擬內存大?。?quot; + pro.VirtualMemorySize.ToString());
   Console.WriteLine("峰值虛擬內存大?。?quot; + pro.PeakVirtualMemorySize.ToString());
   Console.WriteLine("占用時間:" + pro.TotalProcessorTime.ToString());
   Console.WriteLine("特權占用時間:" + pro.PrivilegedProcessorTime.ToString());
   Console.WriteLine("用戶占用時間:" + pro.UserProcessorTime.ToString());
  }
  /// <summary>
  /// 進程的線程詳細信息
  /// </summary>
  public static void GetProcessThreadInfomation()
  {
   Process pro = Process.GetProcessesByName("QQ")[0];
   Console.WriteLine("QQ程序進程的線程詳細信息如下:");
   int length = pro.Threads.Count;
   for (int i = 0; i < length; i++)
   {
    var thread = pro.Threads[i];
    Console.WriteLine("標識符:" + thread.Id.ToString());
    Console.WriteLine("基本優先級:" + thread.BasePriority.ToString());
    Console.WriteLine("當前優先級:" + thread.CurrentPriority.ToString());
    Console.WriteLine("內存地址:" + thread.StartAddress.ToInt32());
    Console.WriteLine("啟動時間:" + thread.StartTime.ToString());
    Console.WriteLine("使用時間:" + thread.UserProcessorTime.ToString());
    Console.Write("當前狀態:");
    switch (thread.ThreadState)
    {
     case ThreadState.Initialized:
      Console.WriteLine("線程已經初始化但尚未啟動");
      break;
     case ThreadState.Ready:
      Console.WriteLine("線程準備在下一個可用的處理器上運行");
      break;
     case ThreadState.Running:
      Console.WriteLine("當前正在使用處理器");
      break;
     case ThreadState.Standby:
      Console.WriteLine("線程將要使用處理器");
      break;
     case ThreadState.Terminated:
      Console.WriteLine("線程已完成執行并退出");
      break;
     case ThreadState.Transition:
      Console.WriteLine("線程在可以執行錢等待處理器之外的資源");
      break;
     case ThreadState.Unknown:
      Console.WriteLine("狀態未知");
      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("線程執行延遲");
       break;
      case ThreadWaitReason.Executive:
       Console.WriteLine("線程正在等待計劃程序");
       break;
      case ThreadWaitReason.FreePage:
       Console.WriteLine("線程正在等待可用的虛擬內存頁");
       break;
      case ThreadWaitReason.LpcReceive:
       Console.WriteLine("線程正在等待本地過程調用到達");
       break;
      case ThreadWaitReason.LpcReply:
       Console.WriteLine("線程正在等待對本地過程調用的回復到達");
       break;
      case ThreadWaitReason.PageIn:
       Console.WriteLine("線程正在等待虛擬內存頁到達內存");
       break;
      case ThreadWaitReason.PageOut:
       Console.WriteLine("線程正在等待虛擬內存頁寫入磁盤");
       break;
      case ThreadWaitReason.Suspended:
       Console.WriteLine("線程執行暫停");
       break;
      case ThreadWaitReason.SystemAllocation:
       Console.WriteLine("線程正在等待系統分配");
       break;
      case ThreadWaitReason.Unknown:
       Console.WriteLine("線程因位置原因而等待");
       break;
      case ThreadWaitReason.UserRequest:
       Console.WriteLine("線程正在等待用戶請求");
       break;
      case ThreadWaitReason.VirtualMemory:
       Console.WriteLine("線程正在等待系統分配虛擬內存");
       break;
      default:
       break;
     }
    }
    Console.WriteLine();
    }
  }
  /// <summary>
  /// 限制應用程序運行時間
  /// 即關聯程序超出設置的運行將自動關閉
  /// </summary>
  public static void GetKillAppForWaitTime()
  {
   Process proc = new Process();
   proc.StartInfo = new ProcessStartInfo(@"C:\Documents and Settings\zkk\桌面\mysql_20120925.sql");
   //啟動應用程序
   proc.Start();
   //等待程序師徒完成載入
   proc.WaitForInputIdle();
   //等待程序結束執行
   proc.WaitForExit(3000);
   //如果程序在時間期限之前關閉,HasExited將會是true
   if (proc.HasExited == false)
   {
    //測試程序是否已經停止回應
    if (proc.Responding)
    {
     //程序有回應,關閉主視圖
     proc.CloseMainWindow();
    }
    else
    {
     //如果程序沒有回應,將強制關閉
     proc.Kill();
    }
   }
  }
 }
}

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

延伸 · 閱讀

精彩推薦
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
主站蜘蛛池模板: 桥本有菜免费av一区二区三区 | 久久tv免费国产高清 | 亚洲一级毛片 | 亚洲成人自拍电影 | 羞羞的视频在线免费观看 | 成人午夜免费国产 | 成人三级电影网址 | 色999中文字幕 | 欧美特黄a | 亚洲一区二区免费 | 极品大长腿啪啪高潮露脸 | 92看片淫黄大片一级 | 久草成人在线 | 亚洲综合精品 | 成人电影毛片 | 久久精品亚洲精品国产欧美kt∨ | 国产精品久久久免费观看 | 亚洲一区成人在线 | 欧美黄色小视频 | 91精品国产综合久久婷婷香 | 亚洲视频精品在线 | 国产一级在线免费观看 | 天天草夜夜爽 | 国产91丝袜在线播放 | 美女久久久久 | 国产精品成人久久 | 制服下着マ○コ航空5 | 久久久久亚洲视频 | 亚洲精品日韩色噜噜久久五月 | 亚洲精品久久久久www | 色欲香天天天综合网站 | 久久99精品久久久久久秒播蜜臀 | 久久久资源网 | 欧美一级片网站 | 一区二区久久精品66国产精品 | 久久国产精品影视 | av免费在线观看av | 国产美女爽到喷白浆的 | 亚洲自拍第二页 | 狠狠久久伊人中文字幕 | 久久区二区|