1

当我显示 all 的列表时PerformanceCounterCategories,我会收到一个荷兰语列表,因为那是我的操作系统的语言。是否可以检索英文列表?

private static void Main(string[] args) {
        var cats = new List<PerformanceCounterCategory>(PerformanceCounterCategory.GetCategories());

        foreach (var name in cats.OrderBy(x => x.CategoryName)) {
            Console.WriteLine(name.CategoryName);
        }

        Console.ReadKey();
}

编辑:除此之外,是否有可能的类别列表及其在线计数器?我一直在寻找高低,还没有偶然发现一个实际的列表。

到目前为止,我发现的唯一东西是这篇文章,它导致了一个类别列表。但是,由于它没有提供有关类别本身的任何信息,所以我已经收到一个异常,说明当我使用该类别时该类别不存在

var temp = new PerformanceCounterCategory("IP");
Console.WriteLine(temp.CategoryHelp);
4

1 回答 1

2

由于它看起来使用Thread.CurrentCulture您无法指定检索所有内容的语言。可能可以安装英语语言包并更改您的CurrentCulture.,但我没有遵循这种可能性。

相反,使用英语操作系统的人向我提供了上面代码的结果,我将使用它作为硬编码英语类别的参考,而不是荷兰语。英语对我来说似乎工作得很好,所以我猜它是每台机器的标准。

我还没有找到关于这些类别的实际文档,但是通过使用常识,我能够将这些technet 文章与上面链接列表中显示的适当类别结合起来。

一个确保它有效的例子:

 var temp = new PerformanceCounter("IPv4", "Datagrams/sec");
 console.WriteLine(temp.CategoryName);

 while (true) {
      float total = 0;
      for (var i = 0; i < 10; i++) {
              total += temp.NextValue();
      }
      Console.WriteLine(total);
      Thread.Sleep(1000);
 }

为我提供了稳定的数据流,尽管 Technet 上的文档仅将类别指定为“IP 对象”,而没有区分“IPv4”和“IPv6”。

如果有人确实找到了解决原始问题的可靠方法(尽管主机系统有偏好,但以英语显示所有类别)只需将其添加为答案,我会接受。

编辑:通过更改解决方案CurrentCulture

System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
            var cats = new List<PerformanceCounterCategory>(PerformanceCounterCategory.GetCategories());
            foreach (var name in cats.OrderBy(x => x.CategoryName)) {
                Console.WriteLine("en-US: " + name.CategoryName);
            }

            System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("nl-NL");
            cats = new List<PerformanceCounterCategory>(PerformanceCounterCategory.GetCategories());
            foreach (var name in cats.OrderBy(x => x.CategoryName)) {
                Console.WriteLine("nl-NL: " + name.CategoryName);
            }
于 2013-07-10T15:21:28.847 回答