处理C#中的应用程序挂起/死锁

Ani*_*tla 5 c# debugging logging multithreading deadlock

问题:是否有任何方法可以记录或确定提供给客户端的应用程序中发生死锁的位置(可能通过在构建过程中启用某些标志)?

背景:通常当我测试代码并发生死锁时,我在Visual Studio中运行,所以我可以点击全部调试并找到正在等待的线程以及在哪里,我立即知道问题是什么.但是,有一个问题导致我的应用程序很少冻结(在单元或集成测试中未检测到).这发生在客户端机器上,他只运行可执行二进制文件.我很想知道是否有任何我可以启用的功能可以帮助报告这些问题,因为很难说没有调试器就可能出现问题.

Ian*_*cer 4

您可以让客户端从 TaskManager 或 Process Explorer 创建小型转储。请参阅这篇文章了解更多信息。