2011-12-17 46 views
2

我想檢測主線程中的某些時間消耗操作導致GUI凍結。 我的目標是自動設置和取消等待光標。如何檢測主線程在GUI中凍結GUI?

感謝

+5

這沒有多大意義。如果gui被凍結,您將無法設置等待光標:GUI被凍結。 – 2011-12-17 13:24:36

+1

@blow可以提取所有Event Event Dispash Thread中的事件,檢查Reapaint Manager中的違規行爲,但是爲什麼???必須計算(如果我們談論AWT,Swing及其衍生產品) EDT會在一瞬間完成(輸出到屏幕), – mKorbel 2011-12-17 13:29:34

+0

@blow:添加'swing'標籤。請糾正,如果我錯了 – home 2011-12-17 13:36:16

回答

5

我想你把本末倒置:你的主線程不應該做擺在首位任何耗時的操作 - 它們應始終在單獨的線程外部化,讓您的GUI可以保持響應(例如在操作上顯示狀態,或者提供放棄它們的可能性)。

2

您可以有一個線程輪詢GUI線程的堆棧跟蹤以確定它是空閒還是忙碌。如果太頻繁,您可以將它正在做的事情(堆棧跟蹤)記錄到日誌中。最初,記錄每個非空閒堆棧跟蹤並確定哪些值不值得記錄可能很有趣。