回答
它通常只是跳到下一行代码。
这是因为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。正如罗杰所说,从那里调试的行为非常正常。 –