C# 4.0 如何获取当前线程的PrivilegedProcessorTime和UserProcessorTime
我找到了几个示例,说明了如何获取进程和所有线程的PrivilegedProcessorTime和UserProcessorTime,但如何获取当前托管线程的PrivilegedProcessorTime和UserProcessorTimeC# 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
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");
}
}
}