一个匪夷所思的代码问题

.Net技术 码拜 8年前 (2016-05-16) 805次浏览
小弟目前负责调试一款C#写的软件,在分析log的时候发现一个匪夷所思的问题。如图1,一个匪夷所思的代码问题I_MainForm.Get_Craft()函数被调用,说明Str_Craft的值必然为”NA“。I_MainForm.Get_Craft()函数定义如图2所示,一个匪夷所思的代码问题
按道理,进入I_MainForm.Get_Craft()函数后程序会进入死循环,不断查询数据库状态,直接满足条件才break,同时打印Log。但实际的log如图3所示,一个匪夷所思的代码问题,其中UpdateLineStatus()语句必须在I_MainForm.Get_Craft()函数执行之后才能执行。所以分析log只有一种可能,那就是while循环根本没进去。但是从图1可知,while循环是一定会进去的,除非在执行之前Str_Craft的值被修改,但假如修改了,log中应该会有信息。
小弟想破脑袋也想不通这个问题产生的原因,还望各位高手赐教!
ps:这个问题发生的几率很小,但是一旦发生就会很麻烦,所以本人一定要解决它!
解决方案

40

乱加trycatch的结果

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明一个匪夷所思的代码问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)