C# 멀티 스레드 프로그래밍에서, 방법 A()
이 새로운 스레드에서 메소드 B()
을 호출 할 때. 이 같은 것을 사용하여 :여러 스레드에서 전체 스택 추적을 볼 수있는 방법이 있습니까?
Task A()
{
// ...
// I want B to run in parallel, without A() waiting for it.
Task.Factory.StartNew(B);
}
void B()
{
// I attach a debugger here to look at the Call Stack.
// But that is empty and I can't see that A() actually called it (logically).
// Also Environment.StackTrace is pretty much empty of that path.
}
방법 내부 즉를 스택 추적이 차례로 방법 B()
의 실행 트리거 방법 A()
호출 경로에 대해 아무것도 모르는 B()
.
전체 논리 스택 추적을 볼 수있는 방법이 있습니까? 예외가있는 경우 B()
에서 사실상 A()
이라는 사실을 알 수 있습니다.
@SimonPrice, 이것이 일반적인 멀티 스레드 프로그램을 디버깅하는 방법입니다. OP는 어떤 쓰레드 (그리고 그 시점에 스택 호출)가 다른 쓰레드를 시작했는지/스케쥴 된 태스크인지 알아내는 방법을 찾고있다. 더 구체적인 것은 없나요? –
자세한 내용으로 질문을 업데이트했습니다. Visual Studio에서이 시나리오를 쉽게 만들면 직접 볼 수 있습니다. – Paymon
이것이 도움이된다면 UWP 애플리케이션에서 이것을 테스트 할 것입니다. – Paymon