我正在使用BeginInvoke啓動代理,但問題是我無法調試通過BeginInvoke調用的 方法。當在方法 中設置斷點時,IDE會暫停(通常),然後一旦遇到斷點 並嘗試繼續(F10或F11),則調試器會掛起。從BeginInvoke(...)調用的調試方法 - 鎖調試器
1
A
回答
3
掛起最可能的原因是隱式屬性或.ToString
評估,這會導致CLR中的死鎖並因此導致調試器死鎖。嘗試禁用此並重復場景
- 工具 - >選項 - >調試
- 取消選中「啓用隱含的財產評估」
當調試程序或明或暗地評估它這樣做對被劫持的功能線程在CLR中。此線程不是您正在調試的線程,並且在此操作期間所有其他線程都被暫停。因此,如果任何ToString
或屬性方法執行線程敏感的操作,它可能很容易導致死鎖。
調試器可以在調試器窗口中同步執行UI線程中的方法,因此它也鎖定Visual Studio。
0
我發現JaredPar的解決方案很有用,但有一個不同的場景,它是有用的。我們在VS2005中發現.net 3.5中的調試器沒有掛起,它不會停止在委託方法中。事實上,證據表明,委託方法從未被調用過。一旦我們解除了啓用隱式屬性評估,則可以調試該方法,並且該方法已成功完成。
相關問題
- 1. 從Xcode調試器調用方法?
- 2. Eclipse調試方法調用
- 3. 無法使用Resharper調試測試 - 無法啓動調試器
- 4. 調試PyThread_acquire_lock死鎖
- 5. 調試試驗方法
- 6. 調試器解鎖鎖? VS 2008
- 7. 調試IEnumerable方法
- 8. ExtJs - 調試方法
- 9. com.sun.jdi.InvocationException調用方法,同時調試
- 10. WinForms調用/ BeginInvoke
- 11. 想法調試從PHP調用GraphicsMagick
- 12. 試圖調用showArrayList方法
- 13. 使用chrome調試器調試圖標
- 14. 使用Visual Studio調試器調試C++
- 15. 從線程調用Invoke/BeginInvoke
- 16. 試圖從控制頁調用方法
- 17. 運行時未調用的打印方法,調試時調用
- 18. javascript chrome調試器equivelant PHP調試器
- 19. Xcode/GDB - 繼續在調試器中指定的方法調用?
- 20. 調試的標準方法
- 21. 使用py.test以某種方式調試python調試器嗎?
- 22. 調度BeginInvoke的語法
- 23. 總是調用異常時調用python調試器的一般方法
- 24. 嘗試在統一中調用方法。不能調用方法
- 25. 玩激活器調試終止試圖從eclipse遠程調試
- 26. OpenEdge記錄鎖調試
- 27. SQL Server 2000 - 調試死鎖
- 28. 如何調試死鎖?
- 29. 調試AngularJS Internet Explorer鎖定
- 30. Java Eclipse調試器獲取方法調用結果
太棒了!我沒有選中「在變量窗口(僅C#)中的對象上調用TOString()」,它解決了我的問題。謝謝!請您提供更詳細的原因信息? – 2011-03-30 06:21:31
@Carlos_Liu增加了一些關於爲什麼會發生這種情況的更多細節 – JaredPar 2011-03-30 06:27:08