C# 准确获取系统 正常运行时间
时间: 2023-08-28 20:03:41 浏览: 482
要获取系统的正常运行时间,可以使用 C# 中的 System.Diagnostics 命名空间中的 PerformanceCounter 类。
使用 PerformanceCounter 类可以获取系统的性能计数器信息,包括系统运行时间、CPU 使用率、内存使用率等信息。
以下是一个示例代码,可以获取系统的正常运行时间:
```
using System;
using System.Diagnostics;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
PerformanceCounter upTime = new PerformanceCounter("System", "System Up Time");
upTime.NextValue();
Console.WriteLine("System uptime: {0}", TimeSpan.FromSeconds(upTime.NextValue()).ToString());
Console.ReadLine();
}
}
}
```
注意,获取系统运行时间需要权限,需要以管理员权限运行程序才能获取。此外,PerformanceCounter 类获取到的是自系统启动以来的运行时间,而不是自上次重启以来的运行时间。
相关问题
C# 准确获取系统 进程与线程
要获取系统进程与线程的信息,可以使用 C# 中的 System.Diagnostics 命名空间中的 Process 类和 Thread 类。
使用 Process 类可以获取系统中运行的进程,可以通过 Process 类的属性和方法获取进程的 ID、名称、启动时间等信息。
使用 Thread 类可以获取进程中的线程信息,可以通过 Thread 类的属性和方法获取线程的 ID、名称、状态等信息。
以下是一个示例代码,可以获取系统中所有进程的 ID、名称和线程信息:
```
using System;
using System.Diagnostics;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Process[] processes = Process.GetProcesses();
foreach (Process process in processes)
{
Console.WriteLine("Process ID: {0}", process.Id);
Console.WriteLine("Process name: {0}", process.ProcessName);
Console.WriteLine("Start time: {0}", process.StartTime);
Console.WriteLine("Thread count: {0}", process.Threads.Count);
Console.WriteLine("-----------------------------");
foreach (ProcessThread thread in process.Threads)
{
Console.WriteLine("Thread ID: {0}", thread.Id);
Console.WriteLine("Thread name: {0}", thread.ThreadState);
Console.WriteLine("-----------------------------");
}
}
Console.ReadLine();
}
}
}
```
注意,获取进程和线程信息需要权限,需要以管理员权限运行程序才能获取所有进程和线程信息。
C# 准确获取系统 CPU 进程与线程
要获取系统 CPU 进程与线程的信息,可以使用 C# 中的 System.Diagnostics 命名空间中的 Process 类和 PerformanceCounter 类。
使用 Process 类可以获取系统中运行的进程,可以通过 Process 类的属性和方法获取进程的 CPU 使用率、线程数等信息。
使用 PerformanceCounter 类可以获取 CPU 的性能计数器信息,包括 CPU 的使用率、核心数、线程数等信息。
以下是一个示例代码,可以获取系统中所有进程的 CPU 使用率和线程数:
```
using System;
using System.Diagnostics;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Process[] processes = Process.GetProcesses();
foreach (Process process in processes)
{
Console.WriteLine("Process name: {0}", process.ProcessName);
Console.WriteLine("CPU usage: {0}%", GetCpuUsage(process));
Console.WriteLine("Thread count: {0}", process.Threads.Count);
Console.WriteLine("-----------------------------");
}
Console.ReadLine();
}
private static float GetCpuUsage(Process process)
{
PerformanceCounter cpuCounter = new PerformanceCounter("Process", "% Processor Time", process.ProcessName);
cpuCounter.NextValue();
System.Threading.Thread.Sleep(1000);
return cpuCounter.NextValue();
}
}
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)