2013-07-09 3 views
1

PerformanceCounterCategories의 목록을 표시 할 때 내 OS 언어이므로 네덜란드어로 목록을 수신합니다. 영어 목록을 검색 할 수 있습니까?다른 언어로 된 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(); 
} 

편집 : 이에 추가 가능한 카테고리와 그 카운터 목록은 온라인 있습니까? 나는 높고 낮은 것을 찾고 있었고 아직 실제 목록을 찾지 못했습니다.

지금까지 발견 된 유일한 점은 카테고리 목록으로 연결되는 this 기사입니다. 이 범주 자체에 어떤 정보를 제공하지 않기 때문에이 appearantly 당신이 언어를 지정할 수 없습니다 Thread.CurrentCulture 사용하기 때문에 그러나, 나는 이미 내가

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

그것은 Thread.CurrentCulture 의해 선택된다. 희망을 얻지 마십시오. –

+0

아마도 나는 잘못된 방향에서 접근하고 있습니다. 기본적으로 저는 몇몇 카테고리의'카운터 (Counters) '를보고 내 프로그램에 표시 할 흥미로운 정보가 있는지보고 싶습니다. 지금은 '네트워크 인터페이스'카테고리의 데이터 만 사용하고 있습니다. 모든 (영어) 카테고리 이름을 표시하여 해당 목록에서 선택하고 얻을 수있는 값을 확인할 수있게하려고했습니다. 나는 이것에 다르게 접근해야 하는가? –

답변

2

을 사용할 때 존재하지 않는 범주라는 예외를 받았습니다 모든 것을 검색 할 수 있습니다. 영어 팩을 설치하고 CurrentCulture을 변경할 수는 있지만 그 가능성은 없습니다.

대신 영어 OS를 사용하는 사람이 위의 코드 중 result을 제공했으며이를 네덜란드어가 아닌 영어 카테고리 하드 코드에 대한 참조로 사용합니다. 영어는 나에게 잘 작동하는 것처럼 보이기 때문에 모든 컴퓨터에서 표준이라고 추측합니다.

아직 카테고리에 대한 실제 문서를 찾지 못했지만 상식을 사용하여 these 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); 
} 

에서 IPv4 '사이의 구별을하지 않고 TechNet의 문서는'IP 개체 '등의 범주를 규정에도 불구하고, 데이터를 일정하게 저를 제공합니다 '및'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); 
      } 
관련 문제