Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如何获取当前线程的PrivilegedProcessorTime和UserProcessorTime_C# 4.0_Threadpool - Fatal编程技术网

C# 4.0 如何获取当前线程的PrivilegedProcessorTime和UserProcessorTime

C# 4.0 如何获取当前线程的PrivilegedProcessorTime和UserProcessorTime,c#-4.0,threadpool,C# 4.0,Threadpool,我找到了几个示例,说明了如何获取进程和所有线程的PrivilegedProcessorTime和UserProcessorTime,但如何获取当前托管线程的PrivilegedProcessorTime和UserProcessorTime private void button1_Click(object sender, EventArgs e) { ThreadPool.QueueUserWorkItem(new WaitCallback(WorkCore)); } static v

我找到了几个示例,说明了如何获取进程和所有线程的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
}

我让它工作,但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");
       }
    }
}