gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:07 25 4
gpt4 key购买 nike

如何获取应用程序运行线程的 cpuload。
我的应用程序在 linux 上运行,mac 不是 windows。

我将单声道更新到版本 3.0.2。
现在我可以获得“Process.GetCurrentProcess().Threads”的正确线程数,但是没有 ProcessThread 对象可用于读取“TotalProcessorTime"

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

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

我希望有人能帮助我。

最佳答案

显然 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);
}
}
}

关于c# mono 获取线程的cpu使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14211612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com