Здравейте аз се опитвам да линия през всичкив C # в "Мрежа Категория" / "" Байта Total / сек "и след това да получите NextValue на всеки един от имената на потребителския модел, но аз съм получаване на грешка, че Името на инстанцията не е намерен. след това: Първо използвам следния код, за да създам всички стойности на ефективността за конкретната категория и за всяко име на потребителско име създавам различен брояч на производителността:
NetworkPerformanceCounterArray = new PerformanceCounter[NetowrkInstanceNames.Length];
foreach (var instance in NetowrkInstanceNames)
{
Console.WriteLine(instance);
NetworkPerformanceCounterArray[tmpind] = new PerformanceCounter();
NetworkPerformanceCounterArray[tmpind].CategoryName = "Network Interface";
NetworkPerformanceCounterArray[tmpind].CounterName = "Bytes Total/sec";
NetworkPerformanceCounterArray[tmpind].CounterName = instance;
tmpind++;
}
Но когато използвам линията[/ I] .NextValue (), за да получите следващата стойност (за който и да е от случаите), получавам изключение (ex Не можах да намеря Performance Counter с определено име на категория "Мрежов интерфейс", име на щанд "Atheros AR8121_AR8113_AR8114 PCI-E Ethernet контролер ").
Странното е, че имената на инстанциите савярна. Например, ако създам само един брояч на производителността за "Atheros AR8121_AR8113_AR8114 PCI-E Ethernet контролер" чрез твърд код, името работи добре. Странното е, че името на потребителския модел "Atheros AR8121_AR8113_AR8114 PCI-E Ethernet контролер" е абсолютно еднакъв и в двата случая, използвах копираща паста и проверявам всеки път.
Може ли някой да изясни нещата?
Отговори:
0 за отговор № 1Ох. Просто забелязах
NetworkPerformanceCounterArray[tmpind].CounterName = "Bytes Total/sec";
NetworkPerformanceCounterArray[tmpind].CounterName = instance;
използвате един и същ елемент (CounterName
) два пъти. Предполагам, че втората линия трябва да се използва InstanceName
вместо.