PerformanceCounterCategory.GetCounters Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Načte seznam čítačů v této kategorii čítačů výkonu.
Přetížení
GetCounters() |
Načte seznam čítačů v kategorii čítačů výkonu, která obsahuje právě jednu instanci. |
GetCounters(String) |
Načte seznam čítačů v kategorii čítačů výkonu, která obsahuje jednu nebo více instancí. |
GetCounters()
Načte seznam čítačů v kategorii čítačů výkonu, která obsahuje právě jednu instanci.
public:
cli::array <System::Diagnostics::PerformanceCounter ^> ^ GetCounters();
public System.Diagnostics.PerformanceCounter[] GetCounters ();
member this.GetCounters : unit -> System.Diagnostics.PerformanceCounter[]
Public Function GetCounters () As PerformanceCounter()
Návraty
Pole PerformanceCounter objektů označující čítače, které jsou přidruženy k této kategorii čítačů výkonu jedné instance.
Výjimky
Kategorie není jedna instance.
Volání základního rozhraní API systému se nezdařilo.
Kategorie nemá přidruženou instanci.
Kód, který se spouští bez oprávnění správce, se pokusil načíst čítač výkonu.
Příklady
Následující příklad kódu získá seznam PerformanceCounter objektů v objektu PerformanceCounterCategory. Nejprve vytvoří PerformanceCounterCategory s příslušným konstruktorem na základě toho, zda byl zadán název počítače. Pak použije metodu GetCounters k vrácení pole PerformanceCounter objektů a vybere GetCounters přetížení na základě toho, zda byl zadán název instance.
Toto GetCounters() přetížení selže, pokud není použito s kategorií s jednou instancí.
public:
static void Main(array<String^>^ args)
{
String^ categoryName = "";
String^ machineName = "";
String^ instanceName = "";
PerformanceCounterCategory^ pcc;
array<PerformanceCounter^>^ counters;
// Copy the supplied arguments into the local variables.
try
{
categoryName = args[1];
machineName = args[2]=="."? "": args[2];
instanceName = args[3];
}
catch (...)
{
// Ignore the exception from non-supplied arguments.
}
try
{
// Create the appropriate PerformanceCounterCategory object.
if (machineName->Length>0)
{
pcc = gcnew PerformanceCounterCategory(categoryName, machineName);
}
else
{
pcc = gcnew PerformanceCounterCategory(categoryName);
}
// Get the counters for this instance or a single instance
// of the selected category.
if (instanceName->Length > 0)
{
counters = pcc->GetCounters(instanceName);
}
else
{
counters = pcc->GetCounters();
}
}
catch (Exception^ ex)
{
Console::WriteLine("Unable to get counter information for " +
(instanceName->Length>0? "instance \"{2}\" in ": "single-instance ") +
"category \"{0}\" on " + (machineName->Length>0? "computer \"{1}\":": "this computer:"),
categoryName, machineName, instanceName);
Console::WriteLine(ex->Message);
return;
}
// Display the counter names if GetCounters was successful.
if (counters != nullptr)
{
Console::WriteLine("These counters exist in " +
(instanceName->Length > 0 ? "instance \"{1}\" of" : "single instance") +
" category {0} on " + (machineName->Length > 0 ? "computer \"{2}\":": "this computer:"),
categoryName, instanceName, machineName);
// Display a numbered list of the counter names.
int objX;
for(objX = 0; objX < counters->Length; objX++)
{
Console::WriteLine("{0,4} - {1}", objX + 1, counters[objX]->CounterName);
}
}
}
public static void Main(string[] args)
{
string categoryName = "";
string machineName = "";
string instanceName = "";
PerformanceCounterCategory pcc;
PerformanceCounter[] counters;
// Copy the supplied arguments into the local variables.
try
{
categoryName = args[0];
machineName = args[1]=="."? "": args[1];
instanceName = args[2];
}
catch
{
// Ignore the exception from non-supplied arguments.
}
try
{
// Create the appropriate PerformanceCounterCategory object.
if (machineName.Length>0)
{
pcc = new PerformanceCounterCategory(categoryName, machineName);
}
else
{
pcc = new PerformanceCounterCategory(categoryName);
}
// Get the counters for this instance or a single instance
// of the selected category.
if (instanceName.Length>0)
{
counters = pcc.GetCounters(instanceName);
}
else
{
counters = pcc.GetCounters();
}
}
catch(Exception ex)
{
Console.WriteLine("Unable to get counter information for " +
(instanceName.Length>0? "instance \"{2}\" in ": "single-instance ") +
"category \"{0}\" on " + (machineName.Length>0? "computer \"{1}\":": "this computer:"),
categoryName, machineName, instanceName);
Console.WriteLine(ex.Message);
return;
}
// Display the counter names if GetCounters was successful.
if (counters!=null)
{
Console.WriteLine("These counters exist in " +
(instanceName.Length>0? "instance \"{1}\" of": "single instance") +
" category {0} on " + (machineName.Length>0? "computer \"{2}\":": "this computer:"),
categoryName, instanceName, machineName);
// Display a numbered list of the counter names.
int objX;
for(objX=0; objX<counters.Length; objX++)
{
Console.WriteLine("{0,4} - {1}", objX+1, counters[objX].CounterName);
}
}
}
Sub Main(ByVal args() As String)
Dim categoryName As String = ""
Dim machineName As String = ""
Dim instanceName As String = ""
Dim pcc As PerformanceCounterCategory
Dim counters() As PerformanceCounter
' Copy the supplied arguments into the local variables.
Try
categoryName = args(0)
machineName = IIf(args(1) = ".", "", args(1))
instanceName = args(2)
Catch ex As Exception
' Ignore the exception from non-supplied arguments.
End Try
Try
' Create the appropriate PerformanceCounterCategory object.
If machineName.Length > 0 Then
pcc = New PerformanceCounterCategory(categoryName, machineName)
Else
pcc = New PerformanceCounterCategory(categoryName)
End If
' Get the counters for this instance or a single instance
' of the selected category.
If instanceName.Length > 0 Then
counters = pcc.GetCounters(instanceName)
Else
counters = pcc.GetCounters()
End If
Catch ex As Exception
Console.WriteLine("Unable to get counter information for " & _
IIf(instanceName.Length > 0, "instance ""{2}"" in ", _
"single-instance ") & "category ""{0}"" on " & _
IIf(machineName.Length > 0, "computer ""{1}"":", _
"this computer:"), _
categoryName, machineName, instanceName)
Console.WriteLine(ex.Message)
Return
End Try
' Display the counter names if GetCounters was successful.
If Not counters Is Nothing Then
Console.WriteLine("These counters exist in " & _
IIf(instanceName.Length > 0, "instance ""{1}"" of", _
"single instance") & " category {0} on " & _
IIf(machineName.Length > 0, _
"computer ""{2}"":", "this computer:"), _
categoryName, instanceName, machineName)
' Display a numbered list of the counter names.
Dim objX As Integer
For objX = 0 To counters.Length - 1
Console.WriteLine("{0,4} - {1}", objX + 1, _
counters(objX).CounterName)
Next objX
End If
End Sub
Poznámky
Další informace o instancích objektů výkonu najdete v přehledu PerformanceCounter třídy.
Poznámka
Chcete-li číst čítače výkonu z neinteraktivní přihlašovací relace v systému Windows Vista a novějších, Windows XP Professional x64 Edition nebo Windows Server 2003, musíte být členem skupiny Sledování výkonu Users nebo mít oprávnění správce.
Abyste nemuseli zvýšit svá oprávnění pro přístup k čítačům výkonu v systému Windows Vista a novějších verzích, přidejte sami sebe do skupiny Sledování výkonu Users.
Nástroj Řízení uživatelských účtů (UAC) v systému Windows Vista a novějším určuje oprávnění uživatele. Pokud jste členem předdefinované skupiny Administrators, máte přiřazeny dva přístupové tokeny run-time: token přístupu uživatele se standardním oprávněním a token přístupu správce. Ve výchozím nastavení máte roli standardního uživatele. Pokud chcete spustit kód, který přistupuje k čítačům výkonu, musíte nejprve zvýšit oprávnění ze standardního uživatele na správce. Můžete to udělat při spuštění aplikace tak, že kliknete pravým tlačítkem myši na ikonu aplikace a označíte, že chcete aplikaci spustit jako správce.
Viz také
Platí pro
GetCounters(String)
Načte seznam čítačů v kategorii čítačů výkonu, která obsahuje jednu nebo více instancí.
public:
cli::array <System::Diagnostics::PerformanceCounter ^> ^ GetCounters(System::String ^ instanceName);
public System.Diagnostics.PerformanceCounter[] GetCounters (string instanceName);
member this.GetCounters : string -> System.Diagnostics.PerformanceCounter[]
Public Function GetCounters (instanceName As String) As PerformanceCounter()
Parametry
- instanceName
- String
Instance objektu výkonu, pro kterou chcete načíst seznam přidružených čítačů.
Návraty
Pole PerformanceCounter objektů označující čítače, které jsou přidruženy k zadané instanci objektu této kategorie čítače výkonu.
Výjimky
Parametr instanceName
je null
.
Vlastnost CategoryName pro tuto PerformanceCounterCategory instanci nebyla nastavena.
-nebo-
Kategorie neobsahuje instanci určenou parametrem instanceName
.
Volání základního rozhraní API systému se nezdařilo.
Kód, který se spouští bez oprávnění správce, se pokusil načíst čítač výkonu.
Příklady
Následující příklad kódu získá seznam PerformanceCounter objektů v objektu PerformanceCounterCategory. Nejprve vytvoří PerformanceCounterCategory s příslušným konstruktorem na základě toho, zda byl zadán název počítače. Pak použije metodu GetCounters k vrácení pole PerformanceCounter objektů a vybere GetCounters přetížení na základě toho, zda byl zadán název instance.
Toto GetCounters(String) přetížení selže, pokud není použito s kategorií, která obsahuje instance.
public:
static void Main(array<String^>^ args)
{
String^ categoryName = "";
String^ machineName = "";
String^ instanceName = "";
PerformanceCounterCategory^ pcc;
array<PerformanceCounter^>^ counters;
// Copy the supplied arguments into the local variables.
try
{
categoryName = args[1];
machineName = args[2]=="."? "": args[2];
instanceName = args[3];
}
catch (...)
{
// Ignore the exception from non-supplied arguments.
}
try
{
// Create the appropriate PerformanceCounterCategory object.
if (machineName->Length>0)
{
pcc = gcnew PerformanceCounterCategory(categoryName, machineName);
}
else
{
pcc = gcnew PerformanceCounterCategory(categoryName);
}
// Get the counters for this instance or a single instance
// of the selected category.
if (instanceName->Length > 0)
{
counters = pcc->GetCounters(instanceName);
}
else
{
counters = pcc->GetCounters();
}
}
catch (Exception^ ex)
{
Console::WriteLine("Unable to get counter information for " +
(instanceName->Length>0? "instance \"{2}\" in ": "single-instance ") +
"category \"{0}\" on " + (machineName->Length>0? "computer \"{1}\":": "this computer:"),
categoryName, machineName, instanceName);
Console::WriteLine(ex->Message);
return;
}
// Display the counter names if GetCounters was successful.
if (counters != nullptr)
{
Console::WriteLine("These counters exist in " +
(instanceName->Length > 0 ? "instance \"{1}\" of" : "single instance") +
" category {0} on " + (machineName->Length > 0 ? "computer \"{2}\":": "this computer:"),
categoryName, instanceName, machineName);
// Display a numbered list of the counter names.
int objX;
for(objX = 0; objX < counters->Length; objX++)
{
Console::WriteLine("{0,4} - {1}", objX + 1, counters[objX]->CounterName);
}
}
}
public static void Main(string[] args)
{
string categoryName = "";
string machineName = "";
string instanceName = "";
PerformanceCounterCategory pcc;
PerformanceCounter[] counters;
// Copy the supplied arguments into the local variables.
try
{
categoryName = args[0];
machineName = args[1]=="."? "": args[1];
instanceName = args[2];
}
catch
{
// Ignore the exception from non-supplied arguments.
}
try
{
// Create the appropriate PerformanceCounterCategory object.
if (machineName.Length>0)
{
pcc = new PerformanceCounterCategory(categoryName, machineName);
}
else
{
pcc = new PerformanceCounterCategory(categoryName);
}
// Get the counters for this instance or a single instance
// of the selected category.
if (instanceName.Length>0)
{
counters = pcc.GetCounters(instanceName);
}
else
{
counters = pcc.GetCounters();
}
}
catch(Exception ex)
{
Console.WriteLine("Unable to get counter information for " +
(instanceName.Length>0? "instance \"{2}\" in ": "single-instance ") +
"category \"{0}\" on " + (machineName.Length>0? "computer \"{1}\":": "this computer:"),
categoryName, machineName, instanceName);
Console.WriteLine(ex.Message);
return;
}
// Display the counter names if GetCounters was successful.
if (counters!=null)
{
Console.WriteLine("These counters exist in " +
(instanceName.Length>0? "instance \"{1}\" of": "single instance") +
" category {0} on " + (machineName.Length>0? "computer \"{2}\":": "this computer:"),
categoryName, instanceName, machineName);
// Display a numbered list of the counter names.
int objX;
for(objX=0; objX<counters.Length; objX++)
{
Console.WriteLine("{0,4} - {1}", objX+1, counters[objX].CounterName);
}
}
}
Sub Main(ByVal args() As String)
Dim categoryName As String = ""
Dim machineName As String = ""
Dim instanceName As String = ""
Dim pcc As PerformanceCounterCategory
Dim counters() As PerformanceCounter
' Copy the supplied arguments into the local variables.
Try
categoryName = args(0)
machineName = IIf(args(1) = ".", "", args(1))
instanceName = args(2)
Catch ex As Exception
' Ignore the exception from non-supplied arguments.
End Try
Try
' Create the appropriate PerformanceCounterCategory object.
If machineName.Length > 0 Then
pcc = New PerformanceCounterCategory(categoryName, machineName)
Else
pcc = New PerformanceCounterCategory(categoryName)
End If
' Get the counters for this instance or a single instance
' of the selected category.
If instanceName.Length > 0 Then
counters = pcc.GetCounters(instanceName)
Else
counters = pcc.GetCounters()
End If
Catch ex As Exception
Console.WriteLine("Unable to get counter information for " & _
IIf(instanceName.Length > 0, "instance ""{2}"" in ", _
"single-instance ") & "category ""{0}"" on " & _
IIf(machineName.Length > 0, "computer ""{1}"":", _
"this computer:"), _
categoryName, machineName, instanceName)
Console.WriteLine(ex.Message)
Return
End Try
' Display the counter names if GetCounters was successful.
If Not counters Is Nothing Then
Console.WriteLine("These counters exist in " & _
IIf(instanceName.Length > 0, "instance ""{1}"" of", _
"single instance") & " category {0} on " & _
IIf(machineName.Length > 0, _
"computer ""{2}"":", "this computer:"), _
categoryName, instanceName, machineName)
' Display a numbered list of the counter names.
Dim objX As Integer
For objX = 0 To counters.Length - 1
Console.WriteLine("{0,4} - {1}", objX + 1, _
counters(objX).CounterName)
Next objX
End If
End Sub
Poznámky
Pokud chcete reprezentovat kategorii s jednou instancí, předejte pro instanceName
parametr prázdný řetězec ("").
Další informace o instancích objektů výkonu najdete v přehledu PerformanceCounter třídy.
Poznámka
Chcete-li číst čítače výkonu z neinteraktivní přihlašovací relace v systému Windows Vista a novějších, Windows XP Professional x64 Edition nebo Windows Server 2003, musíte být členem skupiny Sledování výkonu Users nebo mít oprávnění správce.
Abyste nemuseli zvýšit svá oprávnění pro přístup k čítačům výkonu v systému Windows Vista a novějších verzích, přidejte sami sebe do skupiny Sledování výkonu Users.
Nástroj Řízení uživatelských účtů (UAC) v systému Windows Vista a novějším určuje oprávnění uživatele. Pokud jste členem předdefinované skupiny Administrators, máte přiřazeny dva přístupové tokeny run-time: token přístupu uživatele se standardním oprávněním a token přístupu správce. Ve výchozím nastavení máte roli standardního uživatele. Pokud chcete spustit kód, který přistupuje k čítačům výkonu, musíte nejprve zvýšit oprávnění ze standardního uživatele na správce. Můžete to udělat při spuštění aplikace tak, že kliknete pravým tlačítkem myši na ikonu aplikace a označíte, že chcete aplikaci spustit jako správce.