【发布时间】:2012-03-18 22:52:33
【问题描述】:
我们正在构建一个基于 WinForms 的应用程序(使用 .NET 3.5)
最近我遇到了在执行我们应用程序的一个主要工作流程时,应用程序将在几秒钟内变得无响应,无法正确呈现 UI(显示“程序没有响应”消息)。
我们已将问题简化为向标签控件添加工具提示的可疑代码行:
ToolTip tooltip = new ToolTip();
tooltip.SetTooltip(label, "something");
过去 2 天我一直在弄清楚这段代码中的哪些内容可以对 UI 线程的任何问题进行编码,但没有这样做。
我的问题是——是否可以使用性能分析器来收集有关此类代码的信息?请注意,ToolTip 类属于 WinForms,我没有可用的源代码。
删除这些行似乎可以完全解决问题。 我想在未来减少调试工作,因为这个问题可能会出现在我们代码库的其他位置。
编辑: 我能找到的唯一类似的报告问题是:WinForm ToolTip.SetToolTip is Hanging my application :(
【问题讨论】:
-
工具提示的
Popup事件是否附加了任何处理程序? -
不,工具提示是添加到 Label 的 TextChanged 事件上的,并且本身不注册任何处理程序。
-
您是在创建,然后从另一个线程设置工具提示吗?
-
创建 + 设置(我发布的代码)发生在标签控件的事件处理程序中(发生在主线程 AFAIK 上)。
-
AFAIK没有帮助。既然你的两行代码是完全有效的。
标签: c# .net winforms visual-studio