c# mono获取线程的CPU使用情况
本文关键字:用情 情况 CPU mono 获取 线程 | 更新日期: 2023-09-27 17:51:02
如何获得应用程序运行线程的cpuload
我的应用程序在linux上运行,mac不是windows。
我将mono更新到3.0.2版本。
现在我可以得到"Process.GetCurrentProcess().Threads
"的正确线程计数,但没有ProcessThread
对象可用于读取"TotalProcessorTime
"
我该如何计算我正在运行的应用程序的cpu使用率/线程数?
我可以得到我正在运行的线程的linux-process-id吗?如果可以,我可以读取proc目录结构,但我找不到任何方法。
我希望有人能帮助我。
显然Process.Threads
属性目前仅部分实现:
// This'll return a correctly-sized array of empty ProcessThreads for now.
int error;
return new ProcessThreadCollection(new ProcessThread[GetProcessData (pid, 0, out error)]);
不知道你遇到了什么麻烦得到进程id,这段代码似乎为我工作:
using System;
using System.Diagnostics;
using System.IO;
class MainClass
{
static void Main(string[] args)
{
int pid = Process.GetCurrentProcess().Id;
DirectoryInfo taskDir = new DirectoryInfo(String.Format("/proc/{0}/task", pid));
foreach(DirectoryInfo threadDir in taskDir.GetDirectories())
{
int tid = Int32.Parse(threadDir.Name);
Console.WriteLine(tid);
}
}
}