尽管我没有使用线程,但我遇到了不遵循顺序执行的代码问题。我的代码调用了一个函数,当我在函数内部调试时,它返回到函数调用后的代码行,尽管该函数尚未完成执行,我不知道为什么会发生这种情况,有什么想法吗?提前致谢。
workflow.SaveControlTiempo(solEntity, traId, Usuario.GetUsrId()); // this is my function
// code execution continues here even if the function hasn't finished
// and since the function hasn't finished I get an exception
RadAjaxManager.GetCurrent(Page).RadAlert("Solicitud Transicionada con \u00c9xito");
var javascripFunction = "CloseWindow('Solicitud <b>{0}</b><br />Transicionada con \u00c9xito.<li> <b>Etapa Destino: </b>{1}<li><b>Usuario: </b>{2}');";
javascripFunction = string.Format(javascripFunction, solEntity.SOL_CODIGO, solEntity.WKF_ETP_ETAPAS.ETP_DES,
DNNUtil.GetInstance().GetUserName(solEntity.USR_ID));
最佳答案
这可能是因为您在函数中点击了一行导致控制权返回给调用者。最明显的例子是 return
关键字,但这不是唯一的方法。还要检查您的代码中是否有类似 yield break
的内容。异常也可能给出意想不到的退出点,尽管这似乎并没有发生在这里,因为没有 catch 或 finally block 。
另请注意,调试信息有时会与源代码不同步,因此您看起来像是从不可能返回的位置返回。要解决此问题,请从干净的环境中重建所有文件。
关于c# - 代码行不遵循顺序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2694792/