.net - 在 VS2010 中调试时出现 UI 阻塞

标签 .net winforms debugging

我在 .NET Forms 应用程序中遇到了一个难以诊断的问题,即运行调试器时 UI 会阻塞。

该 block 是随机的,并且在被阻止时,如果我单击调试器中的暂停按钮,它实际上不会完成暂停,直到该 block 释放为止。

我已经在调试器之外尝试过该程序,只需运行它,它不会阻塞并且运行良好。

我尝试使用探查器( Ant )来查找阻止,但在这种状态下它也不会阻止,并且探查器报告没有显示任何值得注意的内容。

应用程序运行后台线程来处理套接字连接超时(使用 Threading.Timer,这些线程不与 UI 通信)。

网络操作正在使用 BeginXXX 调用。

我很难找到这个问题,因为它不会发生在用户身上,但在这些 block 似乎发生时,很难尝试调试程序的其他方面。

UI 的主要焦点是一个显示机器网格的用户控件,其连接状态是从 UI 线程的 State 对象 (POSTerminal) 检索的,

我可以查看什么来可能找到调试器/UI 阻塞之间的联系吗?

最佳答案

这是一个艰难的过程。我认为本系列中的视频可以为您提供一些诊断正在发生的情况的想法:

http://channel9.msdn.com/Series/-NET-Debugging-Stater-Kit-for-the-Production-Environment/Diagnosing-Application-Issues-01

关于.net - 在 VS2010 中调试时出现 UI 阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10592995/

相关文章:

django - Django 的调试器

.net - C# 中的 Settings.settings 用于连接字符串

c# - 展开 WCF 数据服务 (OData) 的投影(选择)

c# - 如何获取 Winforms 窗体标题栏高度的大小?

c# - 从右到左 TabControl c# 的 TabPages 的关闭按钮

c++ - 调试时 Kubuntu 中的繁忙进程

java - Java 中的 .Net Guid.ToByteArray() 相当于什么

c# - 如何在没有 visual studio 的情况下将新文件添加到 .csproj 文件

c# - WinForms 中的数据绑定(bind)执行异步数据导入

c++ - C++ 静态初始化在同一个回溯中出现两次是否正常?