调试期间VS 2013中的奇怪行为

时间:2014-05-14 09:03:23

标签: c# .net debugging

在Visual Studion 2013中进行调试期间,对于C#项目,行号旁边显示的黄色箭头不会移动到下一行。 我必须在每一行按两次F10。 当有一个方法调用并按F11时,它转到该方法,然后在按F10时跳回到调用部分,我必须再次按F10,然后再返回到调用方法中的下一行

发生了什么事? 我不小心打开/关闭了VS中的某些设置吗?

请帮助,因为这会引起很多挫折。

问候。

2 个答案:

答案 0 :(得分:3)

您似乎正在调试一个MultiThreaded应用,它正在多次访问相同的方法,正如我在评论中所说的那样。

检查您的Threads窗口,您会看到超过1个线程正在访问被叫方法,这就是为什么您需要再按F10一次,以及为什么F11正在返回被调用的方法。

Threads窗口中,您可以通过右键点击并按" Freeze"来冻结线程。

答案 1 :(得分:1)

正如Yuval的回答所示,似乎这个问题是由多线程引起的 幸运的是,测试它非常简单。您所要做的就是:

对于每个线程,在创建时指定唯一名称。这可以通过创建后的以下内容来完成:

if(String.IsNullOrWhiteSpace(Thread.CurrentThread.Name))
{
   Thread.CurrentThread.Name = "MyThread_" + id++;
}

别忘了添加:

using System.Threading

Watch窗口中添加System.Threading.Thread.CurrentThread.Name的记录 现在剩下的就是每次按F10

时检查该记录的值是否会发生变化