我们正在构建一个基于WinForms的应用程序(使用.NET 3.5)
最近我遇到过,在执行我们应用程序的主要工作流程时,应用程序将在几秒钟内无响应,无法正确呈现UI(显示“程序未响应”消息)。
我们已将问题缩减为可疑的代码行,该代码行向标签控件添加工具提示:
ToolTip tooltip = new ToolTip();
tooltip.SetTooltip(label, "something");
我花了两天的时间来弄清楚这段代码中的哪些内容可以编写UI线程的任何问题,但未能这样做。
我的问题是 - 是否可以使用性能分析器来收集有关代码的信息?请注意,ToolTip类属于WinForms,我没有可用的源代码。
删除这些行似乎完全解决了这个问题。 我希望将来减少调试工作,因为这个问题可能会出现在我们代码库的其他位置。
编辑: 我能找到的唯一类似的报道问题是:WinForm ToolTip.SetToolTip is Hanging my application :(
答案 0 :(得分:0)
您可以使用JetBrains DotTrace之类的程序来查看实际导致程序暂停的内容
答案 1 :(得分:0)
我有同样的问题,除了我使用设计器放置的ToolTip对象,然后在ToolTip的Popup事件中我设置了ToolTip的文本。
问题只发生在64位Windows 7上(我无法测试32位Win7),在32位Windows XP上运行正常。
编辑:我猜有一些弹出事件的循环调用,因为当我将tolltip设置移动到我的代码的其他位置时,它可以正常工作。