首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c# mono获取线程的cpu使用率

问c# mono获取线程的cpu使用率
EN

Stack Overflow用户
提问于 2013-01-08 17:15:14
回答 1查看 2K关注 0票数 1

如何获取我的应用程序的运行线程的cpuload。

我的应用程序运行在linux上,mac上,而不是windows上。

我将mono更新到版本3.0.2。

现在我可以获得"Process.GetCurrentProcess().Threads“的正确线程数,但没有ProcessThread对象可用于读取"TotalProcessorTime”

如何计算正在运行的应用程序的cpu使用率/线程数?

我能得到我的运行线程的linux-process-id吗?如果可以,我可以读取proc目录结构,但我找不到任何方法。

我希望有人能帮助我。

EN

回答 1

Stack Overflow用户

发布于 2013-01-08 23:57:49

显然,Process.Threads属性仅为partially implemented at the moment

代码语言:javascript
复制
// 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:

代码语言:javascript
复制
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);
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14211612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档