gpt4 book ai didi

c# - 完成测试后如何追踪仍在工作的线程?

转载 作者:行者123 更新时间:2023-11-30 22:41:27 25 4
gpt4 key购买 nike

我将 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

最佳答案

如果 ReSharper 测试运行程序进程仍然存在,则将调试器附加到它并“全部中断”以查看当前正在执行的线程。

将 Visual Studio 调试器附加到进程

下面显示了如何将 VS 调试器附加到正在运行的进程。在选择附加哪个进程时也选择 ReSharper 测试运行器。

http://msdn.microsoft.com/en-us/library/c6wf8e4z.aspx

打破一切

选择此选项将暂停所有正在运行的线程并允许您检查它们。

Menu -> Debug -> Break All

查看话题

“线程”窗口为您提供当前正在调试的进程的所有线程列表。

Menu -> Debug -> Windows -> Threads

有关“线程”窗口的更多详细信息:

http://msdn.microsoft.com/en-us/library/w15yf86f.aspx

关于c# - 完成测试后如何追踪仍在工作的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4816220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com