【发布时间】:2014-01-27 15:16:00
【问题描述】:
我正在调查为什么 VB.NET WinForms 应用程序中的对话框窗口偶尔挂起/冻结(每天大约 6 次)。窗口中的控件在视觉上保持活动状态(悬停状态、按下状态等工作),但您不能在输入字段中键入,并且单击按钮不会执行任何操作。即使关闭窗口 [x] 按钮也不起作用。而且您不能将焦点更改为父窗口。
偶然发现的一种解决方法是来回更改屏幕分辨率。这会“解冻”窗口,以便您继续工作。
迁移到 Windows 7 后开始出现该错误。该系统已在 Windows XP 上运行多年,没有出现任何问题。我还不能重现它,所以现在调试不是一个选项。我只是想找出问题的可能来源。
什么会阻止这样的 .NET 应用程序?
【问题讨论】:
-
您在点击冻结的表格时是否听到“叮”的声音?是否有可能在某处打开模式对话框?我有时会在很多程序中遇到这个问题——我称之为“pop under”。对话框打开并不明显,直到你稍微扔掉它并最终出现。您无法判断它是一直存在还是刚刚出现,因此有时您的操作似乎“解决了”问题。我不知道如何防止这个问题 - 也许提供填充指示对话框所有权的属性。
-
我们目前认为这不是“流行音乐”,@rheitzman - 但很好
-
我唯一一次看到这样的冻结,这是关于 UIThread 的工作太多。也许您的某些处理应该在另一个线程中完成。
标签: .net vb.net winforms vb.net-2010