问题:是否有任何方法可以记录或确定提供给客户端的应用程序中发生死锁的位置(可能通过在构建过程中启用某些标志)?
背景:通常当我测试代码并发生死锁时,我在 Visual Studio 中运行,所以我可以点击 debug all 并找到哪个线程正在等待以及在哪里,我立即知道问题是什么。但是,有一个问题导致我的应用程序很少卡住(在单元测试或集成测试中未检测到)。这发生在他只运行可执行二进制文件的客户端机器上。我很想知道是否有任何我可以启用的功能可以帮助报告这些问题,因为很难说如果没有调试器就可能是问题所在。
最佳答案
您可以让客户端从 TaskManager 或 Process Explorer 创建一个小型转储。参见 this article获取更多信息。
关于c# - 在 C# 中处理应用程序挂起/死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16260121/