Как получить информацию о процессе в C #? - PullRequest
5 голосов
/ 30 апреля 2011

Как получить информацию о процессе (процессор, память, диск и сеть использование) в приложении C #?

PS System.Diagnostics.Process и System.Diagnostics.PerformanceCounter непредоставить информацию об использовании диска и сети.Я им не пользуюсь.

Ответы [ 4 ]

2 голосов
/ 30 апреля 2011
System.Text.StringBuilder sb = new System.Text.StringBuilder();

var currentProcess = System.Diagnostics.Process.GetCurrentProcess();
sb.AppendLine("Process information");
sb.AppendLine("-------------------");
sb.AppendLine("CPU time");
sb.AppendLine(string.Format("\tTotal       {0}",
    currentProcess.TotalProcessorTime));
sb.AppendLine(string.Format("\tUser        {0}",
    currentProcess.UserProcessorTime));
sb.AppendLine(string.Format("\tPrivileged  {0}",
    currentProcess.PrivilegedProcessorTime));
sb.AppendLine("Memory usage");
sb.AppendLine(string.Format("\tCurrent     {0:N0} B", currentProcess.WorkingSet64));
sb.AppendLine(string.Format("\tPeak        {0:N0} B", currentProcess.PeakWorkingSet64));
sb.AppendLine(string.Format("Active threads      {0:N0}", currentProcess.Threads.Count));

и т. Д.

1 голос
/ 30 апреля 2011

Для начала получите список всех процессов и выполните цикл по нему:

    using System.Diagnostics;

    //...

    Process[] all = Process.GetProcesses();
    foreach (Process thisProc in all) {
      string Name = thisProc.ProcessName;
      //...
    }
0 голосов
/ 30 апреля 2011

В System.Diagnostics есть класс Process, который позволяет вам статически получать Processess по имени, идентификатору и т. Д.Таким образом, вы можете сделать что-то вроде

Process p = Process.GetCurrentProcess();
int pageMemSize = p.PagedMemorySize;

Существует множество различных свойств класса.Посмотрите на класс Process здесь

0 голосов
/ 30 апреля 2011

Добавьте эту строку в ваш список использования:

using System.Diagnostics;

Теперь вы можете получить список процессов с помощью метода Process.GetProcesses(), как показано в этом примере:

Process[] processlist = Process.GetProcesses();

foreach(Process theprocess in processlist)
{
    Console.WriteLine(“Process: {0} ID: {1}”, theprocess.ProcessName, theprocess.Id);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...