在调试期间,进入后台工作者/线程。可能?

时间:2014-04-25 07:19:55

标签: c# multithreading visual-studio debugging step-into

出于好奇。我想知道是否可以在调试期间进入后台工作(F11)。它通常只是跳到下一行代码。是VS设置需要更改吗?这是它的意义吗?

非常感谢任何澄清。感谢。

4 个答案:

答案 0 :(得分:4)

正如评论所说,您只需为后台任务中的第一行代码设置断点即可。 (或者:Debugger.Break()。)

另外,我建议您查看Debug > Windows > Threads窗口,它在多线程调试案例中非常有用。

答案 1 :(得分:3)

  

它通常会跳到下一行代码。

那是因为BackgroundWorker正在另一个线程上执行,必须首先创建并启动它,这需要一些时间。如果你继续踩踏,你会在某个时候进入工人,但是到底有没有确切知道。

如果要调试它,只需在工作代码的开头添加断点即可。

答案 2 :(得分:2)

调试开始后,打开Sebestyén答案中提到的线程窗口。启动所需的线程时,请密切注意“线程”窗口中显示的新行的“位置”列。一旦它具有您想要的线程的名称,右键单击它并选择“切换到线程”。 这解决了调试器光标在我尝试调试特定线程时继续转到代码的其他点(其他线程正在运行)的问题。

答案 3 :(得分:2)

来自 Haggisatonal 回答

禁用VS托管流程(项目 - >属性 - >调试 - >启用Visual Studio托管流程)

链路

Visual Studio 2015 Debug doesn't work in multithread application