在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()
的完整故事吗?