2012-06-19 82 views
0

有什麼工具可以讓你查看當前執行你的代碼嗎?我需要這個,因爲我的WPF應用程序的用戶界面沒有任何通知/異常。我無法調試該問題。系統保持空閒狀態,每次我必須明確地終止進程。有什麼建議麼。 FYI ..許多第三方工具正在使用。識別用戶界面掛起問題

回答

1

您可以使用WinDbg充分調教一個進程的所有方面。雖然涉及到學習曲線,但在我看來,熟悉這個工具對開發人員至關重要。要開始通過任務管理器&下載&安裝debugging tools for windows獲取正在運行的進程的完整內存轉儲。一旦你做完這個,看看一些教程&如果你發表評論回覆

+0

正在安裝...。 – gaurawerma

+0

它一直說「無法找到符號文件」 – gaurawerma

+0

你指定了符號路徑嗎? – Johnv2020

0

如果您正在使用主線程執行內存/ CPU使用任務,那麼即使沒有任何異常,UI也將變爲空閒。要解決此問題,請使用BackgroudWorker /單獨的線程來執行耗時的操作。因此,該UI不會凍結。

+0

謝謝。這已經照顧了 – gaurawerma

2

我不知道你已經測試了,也許我的回答是無效的,但是:

您是否嘗試過使用暫停功能在Visual Studio。它暫停應用程序的所有線程,並可以看到每個線程在哪裏暫停。您還可以逐步瀏覽每個主題以查找可能的問題。

一些問題,我在過去:

  • 其中從UI線程工作,後臺線程
    • 調度大塊使用BackgroundWorker
  • 錯誤立即執行太多的動作鎖定模型,以便UI線程無法收集它想要的信息
    • M確保ViewModel中的數據不能被沒有鎖定屬性的後臺線程改變。

一些有趣的鏈接,瞭解WPF和多線程:

希望這有助於你有點

+0

我只是拋棄了這個過程,並試圖在visual studio中調試轉儲,並發現它是一個僵局! – gaurawerma

+0

利用'lock' keywork可以幫助你防止出現死鎖 – hwcverwe

+0

每次我暫停調試器時,都需要鎖定(obj)語句 – gaurawerma