Поскольку appearantly использует Thread.CurrentCulture
вы не можете указать язык для извлечения всего. Возможно, вы сможете установить пакет английского языка и изменить свой CurrentCulture
, но я не следовал этой возможности.
Вместо этого, кто-то с английской ОС предоставил мне его result вышеприведенного кода, и я буду использовать это как ссылку на категории жесткого кода на английском языке, а не на голландский. Кажется, что английский работает отлично для меня, поэтому я предполагаю, что он стандартный на каждой машине.
Я пока не нашел фактическую документацию по категориям, но с помощью здравого смысла мне удалось совместить these технотехнических статей с соответствующей категорией, как показано в списке, указанном выше.
пример, чтобы убедиться, что он работает:
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 '.
Если кто-то действительно находит надежный способ исправить исходную проблему (отображая все категории на английском языке, несмотря на предпочтения хост-системы) просто добавьте его в качестве ответа, и я соглашусь с этим.
Edit: Решение путем изменения 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);
}
Он выбирается Thread.CurrentCulture. Не возлагайте надежды. –
Возможно, я приближаюсь с неправильного направления. В принципе, я хочу посмотреть «счетчики» некоторых «категорий», чтобы увидеть, есть ли интересная информация для отображения в моей программе. Сейчас я использую только данные из категории «Сетевой интерфейс». Я хотел отобразить все (английские) названия категорий, чтобы я мог выбрать из этого списка и посмотреть, какие значения я могу получить. Должен ли я подходить к этому по-другому? –