【问题标题】:Dealing with Application Hangs / Deadlocks in C#在 C# 中处理应用程序挂起/死锁
【发布时间】:2013-04-22 00:37:05
【问题描述】:

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

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

【问题讨论】:

    标签: c# multithreading debugging logging deadlock


    【解决方案1】:

    您可以让客户端从 TaskManager 或 Process Explorer 创建一个小型转储。请参阅this article 了解更多信息。

    【讨论】:

    • 酷。我以前从来不知道这件事。看起来很有希望,但是当程序冻结时,他们的整个计算机都会冻结(因为鼠标甚至不会移动),所以他们无法进入任务管理器。除非 Ctrl+Alt+Delete 仍然有效,我认为我们没有尝试过。
    猜你喜欢
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 2011-12-27
    • 1970-01-01
    • 2016-12-22
    相关资源
    最近更新 更多