我在 .NET Forms 应用程序中遇到了一个难以诊断的问题,即运行调试器时 UI 会阻塞。
该 block 是随机的,并且在被阻止时,如果我单击调试器中的暂停按钮,它实际上不会完成暂停,直到该 block 释放为止。
我已经在调试器之外尝试过该程序,只需运行它,它不会阻塞并且运行良好。
我尝试使用探查器( Ant )来查找阻止,但在这种状态下它也不会阻止,并且探查器报告没有显示任何值得注意的内容。
应用程序运行后台线程来处理套接字连接超时(使用 Threading.Timer,这些线程不与 UI 通信)。
网络操作正在使用 BeginXXX
调用。
我很难找到这个问题,因为它不会发生在用户身上,但在这些 block 似乎发生时,很难尝试调试程序的其他方面。
UI 的主要焦点是一个显示机器网格的用户控件,其连接状态是从 UI 线程的 State 对象 (POSTerminal
) 检索的,
我可以查看什么来可能找到调试器/UI 阻塞之间的联系吗?
最佳答案
这是一个艰难的过程。我认为本系列中的视频可以为您提供一些诊断正在发生的情况的想法:
关于.net - 在 VS2010 中调试时出现 UI 阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10592995/