VS 2013调试期间的奇怪行为

本文关键字:2013 调试 VS | 更新日期: 2023-09-27 18:03:20

在Visual studio 2013调试期间,对于c#项目,出现在行号旁边的黄色箭头不会移动到下一行。我每一行都要按两次F10。当有一个方法调用时,我按F11,它会转到该方法,然后在按F10时跳转回调用部分,我必须再次按F10第二次,然后它才会回到被调用方法的下一行。

怎么回事?我不小心打开/关闭一些设置在VS?

请帮忙,因为这引起了很多挫折。

问候。

VS 2013调试期间的奇怪行为

似乎你正在调试一个多线程应用程序,它多次访问相同的方法,正如我在评论中所说的。

检查你的Threads窗口,你会看到超过1个线程正在访问被调用的方法,这就是为什么你不得不多次按下F10,以及为什么F11返回到被调用的方法。

在您的Threads窗口中,您可以通过右键单击它们并按"冻结"来冻结线程。

正如Yuval的回答所建议的那样,这个问题似乎是由于多个线程而发生的。
你很幸运,测试起来很简单。你所要做的就是:

对于每个线程,在创建时分配一个唯一的名称。这可以在创建后通过如下代码完成:

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

别忘了加上:

using System.Threading

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

时记录的值是否会改变