我正在逐步调试Visual Studio 2010中的应用程序,并且它一度跳转到代码的意外部分.这是一个错误吗?

Fer*_*rti 4 c# visual-studio-2010

我正在逐步调试Visual Studio 2010中的一个应用程序,令人惊讶的是,它以非线性的方式跳回到一部分代码中.我在单元测试中运行代码,使用debug(使用resharper)并且Visual Studio停止,它在等待一段时间后没有说stackoverflow或任何东西.

我认为这是一个错误.我也发生在另一个时间.为什么它会以这种任意方式跳转代码?

你知道如何防止这种情况吗?是否有一些特殊的编码方式会使这个bug容易发生?

编辑:跳转到的代码的一部分:

foreach (var elemento in expresion.ElementosUsados)
        {
            valoresElementos.Add(new ValorYNombre(elemento.Nombre, elemento.GetValor(valoresBase)));
        }
Run Code Online (Sandbox Code Playgroud)

那时"elemento"的值将等于"this"(对同一个对象的引用)

Rus*_*ssS 6

您是否在启用优化的情况下编译?这可能导致代码无法完美模仿编写代码的流程,但会模仿其功能.这导致调试器似乎从操作跳转到操作.


编辑Olivier Jacot-Descombes:

在此输入图像描述

我在这里添加了图片,因为我无法将其添加到评论中.


小智 5

当您的应用程序有多个线程时,这可能是可能的.