回答
它通常只是跳到下一行代碼。
這是因爲BackgroundWorker正在另一個線程上執行,它必須先創建並啓動,這需要一些時間。如果你繼續踩下去,你會在某個時候進入工人,但是沒有確切的時間。
如果要調試它,只需在工作代碼的開始處放置一個斷點即可。
這是信息。謝謝:) – Dumisani
正如評論所說,你只需要爲後臺任務中的第一行代碼設置一個斷點。 (或者:Debugger.Break()
。)
此外,我建議你看看Debug > Windows > Threads
窗口,它在多線程調試的情況下非常有用。
我也會推薦平行觀察窗口。 –
調試開始後,打開Sebestyén回答中提到的線程窗口。當所需的線程開始時,請注意線程窗口中出現的新行的「位置」列。一旦它有你想要的線程的名稱,右鍵單擊它並選擇「切換到線程」。 這解決了當我試圖調試特定線程時,調試器光標繼續前進到代碼的其他線程(其他線程正在運行,我想)的問題。
從Haggisatonal答案
禁用VS宿主進程(項目 - >屬性 - >調試 - >啓用在Visual Studio宿主進程)
鏈接
Visual Studio 2015 Debug doesn't work in multithread application
雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效 – abarisone
- 1. 後臺工作進程或線程?
- 2. 在調試會話期間PHPstorm控制檯輸入不工作
- 3. 後臺工作線程進度條
- 4. WPF和後臺工作者和調用線程必須是STA
- 5. 報告類和線程之間的後臺工作進程
- 6. 多次調用後臺工作線程?
- 7. 後臺工作線程
- 8. ASP.NET後臺工作線程
- 9. 調用在後臺線程/進程的功能(分叉)
- 10. XamlReader.Load在後臺線程。可能嗎?
- 11. 是否有可能從Java中的工作者線程調用主線程?
- 12. C#加入後臺工作線程中的線程DoWork()
- 13. 如何在後臺線程上調度操作[可可]
- 14. MVVM進度條和後臺工作者可見性
- 15. 可可下載文件回調從後臺線程下載時未調用,在主線程上工作
- 16. C#,後臺工作者類
- 17. C#後臺工作者sql
- 18. 暫停和恢復一個線程(後臺工作者)
- 19. 如何使用線程/後臺工作者C#實現SerialPort?
- 20. 是後臺工作者的一個線程嗎? (C#)
- 21. 更適合我的任務:後臺工作者或線程池?
- 22. 後臺工作 - 服務,線程或兩者
- 23. 關於線程/後臺工作者的問題
- 24. 後臺工作者線程不取消取消
- 25. 後臺工作者和跨線程問題
- 26. 當應用程序進入後臺時運行後臺線程
- 27. 試圖在後臺工作線程中更改值單元格
- 28. bash後臺進程不工作,或者我錯過了什麼?
- 29. 當後臺線程正在工作時進度條(微調)不動畫
- 30. 在Linux中進行調試期間可以停止單個線程嗎?
應該這樣做沒問題 - 只需在線程函數中放置一個斷點並逐步完成。在斷點處,所有線程都暫停。 [請參閱此處瞭解更多信息](http://msdn.microsoft.com/zh-cn/library/bb157786.aspx)。 –
@RogerRowland是的,這就是我通常所做的。我只是想知道爲什麼它不會像正常功能那樣進入內部。 – Dumisani
調試/ Windows /線程給你一個正在運行的線程列表。雙擊一個例如而程序在斷點處暫停並且您看到線程停止的位置。參看http://msdn.microsoft.com/en-us/library/w15yf86f.aspx。正如羅傑所說,從那裏調試的行爲非常正常。 –