如何获取我的应用程序的运行线程的cpuload。
我的应用程序运行在linux上,mac上,而不是windows上。
我将mono更新到版本3.0.2。
现在我可以获得"Process.GetCurrentProcess().Threads“的正确线程数,但没有ProcessThread对象可用于读取"TotalProcessorTime”
如何计算正在运行的应用程序的cpu使用率/线程数?
我能得到我的运行线程的linux-process-id吗?如果可以,我可以读取proc目录结构,但我找不到任何方法。
我希望有人能帮助我。
发布于 2013-01-08 23:57:49
显然,Process.Threads属性仅为partially implemented at the moment
// 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时遇到了什么麻烦,这段代码是seems to work:
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);
}
}
}https://stackoverflow.com/questions/14211612
复制相似问题