2012-05-03 4 views
15

Ich versuche herauszufinden, wie viele Threads meine Anwendung ausführt, um ein Live-Diagramm der Leistung zu erstellen. Kannst du mich in die richtige Richtung weisen oder ein Codebeispiel bereitstellen? Vielen Dank!Finden Sie heraus, wie viele Threads meine Anwendung läuft?

+0

Möchten Sie wissen, wie viele Threads Sie explizit erstellt haben? Oder irgendwelche Threads, die .NET in Ihrem Auftrag erstellt hat? –

+3

Wie würde das Wissen, wie viele Threads vorhanden sind, mit der Leistung zusammenhängen? Was wirklich interessant ist, ist was diese Threads machen. –

+0

@David Heffernan: Ich habe versucht, einen Weg zu finden, dies auch zu tun. Hauptsächlich wollte ich herausfinden, wie viele Threads in der Anwendung waren, um zu analysieren, wie das Programm mit der Erzeugung/Freigabe von Threads umging, und ich hoffte, einen Grund oder einen Grund zu finden, warum die Anzahl der Threads (wie in der Aufgabe gezeigt) Manager) würde lächerlich hoch werden. Dies könnte also mit der Leistung von diesem Standpunkt aus zusammenhängen. –

Antwort

31

Sie können an der Threads Eigenschaft des aktuellen Prozesses einen Blick:

System.Diagnostics.Process.GetCurrentProcess().Threads 

Natürlich ist dies auch nicht verwaltete Threads umfasst.

+0

schließt das ended threads ein? – clamp

+2

Das Angeben der Assembly und des Namespace für etwas, das nicht standardmäßig in einem C# -Projekt enthalten ist, würde die Antwort vervollständigen. 'Process' befindet sich im Namensraum' System.Diagnostics'. – ThunderGr

+0

@Darin Dimitrove gibt es eine Möglichkeit, herauszufinden, "Welcher Thread gehört zu welchem ​​Programmabschnitt?" – AminM

-2
private static int s_threadCount; 

private static void MyMethod() { 
    Interlocked.Increment(ref s_threadCount); 
    try { 
    ... 
    } finally { 
    Interlocked.Decrement(ref s_threadCount); 
    } 
} 
+4

Das würde Ihnen nur die Anzahl der Threads in dieser bestimmten Methode sagen, nicht die Anzahl der Threads für den Prozess als Ganzes. –

Verwandte Themen