C# 实时获取子Appdomain cpu使用率、内存使用率和线程数

C# 实时获取子Appdomain cpu使用率、内存使用率和线程数,c#,memory,cpu,monitoring,appdomain,C#,Memory,Cpu,Monitoring,Appdomain,3-在进程中创建的子appdomain(主appdomain),以及如何实时获取子appdomain的cpu使用率、内存使用率和线程数?cpu使用率和其他相关信息并不真正适用于.Net appdomain,它只存在于CLR级别,而不存在于OS级别。因此,默认情况下,您只能在流程级别跟踪这些详细信息 自.Net 4.0以来,AppDomain具有名为MonitoringEnabled的静态属性。设置后,您可以使用其他属性(AppDomain.Monitor)跟踪详细信息。请注意,这仍然不是实时的。

3-在进程中创建的子appdomain(主appdomain),以及如何实时获取子appdomain的cpu使用率、内存使用率和线程数?

cpu使用率和其他相关信息并不真正适用于.Net appdomain,它只存在于CLR级别,而不存在于OS级别。因此,默认情况下,您只能在流程级别跟踪这些详细信息


自.Net 4.0以来,AppDomain具有名为
MonitoringEnabled
的静态属性。设置后,您可以使用其他属性(
AppDomain.Monitor
)跟踪详细信息。请注意,这仍然不是实时的。这可能是一个好的开始。

使用以下方法,获取的值似乎不正确

public static double GetAppDomainCpuUsage(AppDomain hostDomain)
        {

            if (Process.GetCurrentProcess().TotalProcessorTime.TotalMilliseconds > 0)
                return hostDomain.MonitoringTotalProcessorTime.TotalMilliseconds * 100 /                  Process.GetCurrentProcess().TotalProcessorTime.TotalMilliseconds;
            return 0;
        }

        public static double GetAppDomainMemoryUsage(AppDomain hostDomain)
        {
            if (AppDomain.MonitoringSurvivedProcessMemorySize > 0)
                return (double)hostDomain.MonitoringSurvivedMemorySize * 100 / (double)AppDomain.MonitoringSurvivedProcessMemorySize;
            return 0;
        }

AppDomain.MonitoringIsEnabled=true

这是在2014年11月4日关闭的时候被问到的。谷歌搜索揭示了一切。哈哈,这是搜索中的第一个