2011-01-27 4 views
2

Resharper와 함께 NUnit을 사용하고 있습니다. 한 테스트를 끝내면 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 

답변

3

ReSharper에서 테스트 러너 프로세스가 계속 있으면 다음에 디버거를 연결하고 현재 실행중인 스레드를보고 "모든 휴식".

어떻게 실행중인 프로세스에 VS의 디버거를 연결하는

다음 쇼를 처리하려면 Visual Studio 디버거를 연결합니다. 첨부 할 프로세스를 선택할 때 ReSharper 테스트 러너를 선택하십시오.

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

브레이크 모든

실행중인 모든 스레드를 중단하고 당신이 그들을 검사 할 수 있도록이 옵션을 선택.

메뉴 -> 디버그 -> 모든

보기 글은 "스레드"창이 당신에게 디버깅중인 현재 프로세스에 대한 모든 스레드의 목록을 제공

휴식.

메뉴 -> 디버그 -> 윈도우 -> 스레드

은 "스레드"창에

더 자세히 :

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

+0

당신이 VS2010에서 작업을 수행하는 방법에 더 구체적으로 수 ? – Simon

+0

@ 시몬 문제가되지 않습니다. 디버거를 프로세스에 연결하는 데 익숙합니까? –

+0

@chibacity : 디버거를 프로세스에 연결하는 방법을 모르겠다. "모두 중단"한다는 것은 무엇을 의미합니까? – Simon

관련 문제