Wie bekomme ich die CPU-Auslastung und/oder RAM-Auslastung von einem *THREAD* in C# (managed code)?
Weiß ich, wie man CPU-Auslastung und Speicher-Auslastung für einen Prozess, aber ich Frage mich, wie man es auf einer pro-thread-Ebene. Wenn die beste Lösung ist, um zu tun, einige P-Aufrufen, dann ist das auch in Ordnung.
Beispiel für das, was ich brauche:
Thread myThread = Thread.CurrentThread;
//some time later in some other function...
Console.WriteLine(GetThreadSpecificCpuUsage(myThread));
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Beispiel, die tut, was Sie wollen
http://www.codeproject.com/KB/system/processescpuusage.aspx
Wie gesagt, Speicher verwenden, kann nicht beantwortet werden, da das ist ein Attribut der Prozess als ganzes, aber die CPU-Nutzung:
Können Sie nicht bekommen, Speicher-Auslastung pro thread, da Speicher wird gemeinsam von allen threads in einem Prozess. Wie würde das OS wissen, ob Sie den zugewiesenen Speicher in einem thread, und verwendet es in einem anderen. Und was würde es bedeuten?
Hier ist ein einfaches Programm, dass startet 5 threads, verbrauchen unterschiedliche Mengen an CPU und dann passt das, was gelungen Faden ist verbraucht, welche Menge CPU.
Beachten Sie, dass es möglich ist, dass die CLR wird, ändern Sie die systemeigenen Threads, die verwaltete thread unter. In der Praxis ist jedoch ich bin nicht sicher, wie oft dies tatsächlich geschieht.