我正在使用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. Xcode調試器 - 通過方法調試
- 3. Eclipse調試方法調用
- 4. 無法使用Resharper調試測試 - 無法啓動調試器
- 5. 調試PyThread_acquire_lock死鎖
- 6. 調試試驗方法
- 7. 調試器解鎖鎖? VS 2008
- 8. ExtJs - 調試方法
- 9. 調試IEnumerable方法
- 10. com.sun.jdi.InvocationException調用方法,同時調試
- 11. GWT - 調試異步方法調用
- 12. WinForms調用/ BeginInvoke
- 13. 試圖調用showArrayList方法
- 14. 測試方法調用
- 15. 想法調試從PHP調用GraphicsMagick
- 16. 使用chrome調試器調試圖標
- 17. 使用Visual Studio調試器調試C++
- 18. 從線程調用Invoke/BeginInvoke
- 19. 如何從引用類調試方法?
- 20. 試圖從控制頁調用方法
- 21. 運行時未調用的打印方法,調試時調用
- 22. 調度BeginInvoke的
- 23. javascript chrome調試器equivelant PHP調試器
- 24. Xcode/GDB - 繼續在調試器中指定的方法調用?
- 25. 調試的標準方法
- 26. 從C++代碼中調用Python調試的有效方法
- 27. 調度BeginInvoke的語法
- 28. 使用py.test以某種方式調試python調試器嗎?
- 29. 從Eclipse調試Scala庫中的方法
- 30. 嘗試在統一中調用方法。不能調用方法
太棒了!我沒有選中「在變量窗口(僅C#)中的對象上調用TOString()」,它解決了我的問題。謝謝!請您提供更詳細的原因信息? – 2011-03-30 06:21:31
@Carlos_Liu增加了一些關於爲什麼會發生這種情況的更多細節 – JaredPar 2011-03-30 06:27:08