我正在使用NUnit和Resharper。当我完成一个测试时,JetBrain:Resharper进程仍在工作,当我写出它的线程时,仍然有一些线程工作。我可以追踪它是什么类型的线程吗?我目前正在使用以下代码,但它只给我线程ID。我需要线程名称。
Process[] allProcs = Process.GetProcesses();
foreach (Process proc in allProcs)
{
if (proc.ProcessName.StartsWith("Jet"))
{
ProcessThreadCollection myThreads = proc.Threads;
Console.WriteLine("process: {0}, id: {1}", proc.ProcessName, proc.Id);
foreach (ProcessThread pt in myThreads)
{
Console.WriteLine(" thread: {0}", pt.Id);
Console.WriteLine(" started: {0}", pt.StartTime.ToString());
Console.WriteLine(" CPU time: {0}", pt.TotalProcessorTime);
Console.WriteLine(" priority: {0}", pt.BasePriority);
Console.WriteLine(" thread state: {0}", pt.ThreadState.ToString());
}
}
}
上述代码的输出:
process: JetBrains.ReSharper.TaskRunner.MSIL, id: 1884
thread: 3600
started: 27.1.2011 13.26.55
CPU time: 00:00:05.8812377
priority: 8
thread state: Running
答案 0 :(得分:3)
如果ReSharper测试运行程序仍在那里,那么将调试器附加到它并且"中断所有"查看当前正在执行的线程。
附加Visual Studio调试程序以处理
以下显示如何将VS调试器附加到正在运行的进程。选择要附加的进程时,请选择ReSharper测试运行器。
http://msdn.microsoft.com/en-us/library/c6wf8e4z.aspx
全部中断
选择此选项将暂停所有正在运行的线程并允许您检查它们。
菜单 - >调试 - >全部打破
查看主题
"线程"窗口为您提供正在调试的当前进程的所有线程的列表。
菜单 - >调试 - > Windows - >线程
关于"线程&#34的更多细节;窗口: