3

我们的遗留产品之一是 Winforms 应用程序,它不使用后台线程,而是在主 UI 线程上执行所有操作。它在这个主线程上运行一个恒定循环,每 20 毫秒调用一次 Application.DoEvents()。有时,应用程序会在 DoEvents 调用中挂起。我的问题是如何找出代码挂起的队列事件调用?

PS有人知道我可以用来获取进程中每个线程的堆栈跟踪的工具吗?

此外,这仅发生在生产客户端,我们现在必须解决。也不可能在客户端安装 VS。

4

2 回答 2

2

您可以在 Visual Studio 中执行此操作,只需附加到进程、中断执行并打开线程窗口。

菜单:调试->Windows->线程

于 2011-05-11T19:02:25.533 回答
0

我找到了我正在寻找的工具。数据库

它可以获取当前正在运行的 Windows 进程的堆栈跟踪。但是,它确实需要该应用程序的 PDB 文件。

于 2011-05-12T00:59:42.713 回答