Как получить PrivilegedProcessorTime и UserProcessorTime для текущего потока - PullRequest
0 голосов
/ 24 июня 2010

Я нашел несколько примеров того, как получить PrivilegedProcessorTime и UserProcessorTime для процесса и для всех потоков, но как мне получить PrivilegedProcessorTime и UserProcessorTime для текущего управляемого потока.

private void button1_Click(object sender, EventArgs e)
{
    ThreadPool.QueueUserWorkItem(new WaitCallback(WorkCore));
}

static void WorkCore(Object stateInfo)
{
    // Code to get and do work
    // Code to get and log PrivilegedProcessorTime and UserProcessorTime
}

1 Ответ

0 голосов
/ 09 июля 2010

Я получил это на работу, но AppDomain.GetCurrentThreadId устарел

static void WorkCore(Object stateInfo) 
{ 
    // Code to get and do work 
    // Code to get and log PrivilegedProcessorTime and UserProcessorTime
    ProcessThreadCollection m_Threads = Process.GetCurrentProcess().Threads;
    foreach(ProcessThread t in m_Threads)
    {
       if (t.Id == AppDomain.GetCurrentThreadId())
       {
          sw.WriteLine("User Time " + t.UserProcessorTime.ToString(@"d\:hh\:mm\:ss"));
          sw.WriteLine("Kernel Time " + t.PrivilegedProcessorTime.TotalSeconds.ToString("F0") + " sec");
       }
    }
} 
...