2012-03-18 38 views
3

我們正在建設WinForms應用程序變得隨機反應遲鈍

最近我遇到了執行我們的應用程序的主要工作流程的一個時,應用程序將在幾秒鐘之內變得無法響應一個WinForms基於應用程序(使用.NET 3.5)無法正確呈現UI(顯示「程序沒有響應」消息)。

我們的問題減少到代碼疑似線,增加了一個工具提示標籤控制:

ToolTip tooltip = new ToolTip(); 
tooltip.SetTooltip(label, "something"); 

我花了最近兩天搞清楚這些代碼是如何可以與代碼中的任何問題UI線程,但未能這樣做。

我的問題是 - 是否可以使用性能分析器來收集有關代碼的信息?請注意,ToolTip類屬於WinForms,我沒有可用的源代碼。

刪除這些行似乎完全解決了這個問題。 我想在未來減少調試工作,因爲這個問題可以在我們的代碼庫的其他位置顯現。

編輯: 唯一的類似報告的問題,我能找到的是這樣的:WinForm ToolTip.SetToolTip is Hanging my application :(

+0

是否有任何處理程序附加到工具提示的「Popup」事件? – Siege 2012-03-18 22:56:19

+0

不,工具提示被添加到Label的TextChanged事件中,並且本身不會註冊任何處理程序。 – 2012-03-18 22:58:14

+0

您是否正在創建,然後從另一個線程設置工具提示? – Siege 2012-03-18 23:11:10

回答

0

你可以使用一個程序,如JetBrains DotTrace看到發生了什麼,實際上導致程序中止

+0

它允許查看外部(第三方)代碼嗎? – 2012-03-18 23:12:18

+0

我有一段時間沒有用過它,但我相信它會對它進行介紹。然後,您可以使用他們的其他程序dotPeek實際查看源代碼 – 2012-03-19 01:15:08

0

我有同樣的問題,除了我使用設計器放置工具提示對象,然後在工具提示的Popup事件中設置工具提示的文本。

該問題只發生在Windows 7 64位(我沒有可能測試32位Win7),在32位Windows XP上,這工作正常。

編輯:我想有一些經常性的彈出事件調用,因爲當我將tolltip設置移動到我的代碼的其他位置時,它工作正常。

相關問題