问题描述
Debug直接VS运行,结果没问题Debug编译好的EXE运行,结果没有问题Release直接VS运行,结果没问题Release编译好的EXE运行,问题就出来了经过一番网络查询原因,加上自己将代码从空项目开始,逐行逐句加入全新的项目中,最终锁定三组语句的异常,三组语句都是访问数据库的,经过断点调试,正常运行,无异常。上下文中还有多处和这三组类似的语句,均无异样。只要这三组语句在程序中,都会影响一个计时器的运行,只要这三组注释掉,计时器正常运行!这三组(包括其他类似的地方)访问数据库都是使用的动软代码生成器,生成的Model、BLL、DAL文件,现在迷惑的是,这三处哪里出问题了!出了什么问题,Release编译好的EXE运行为什么就不能启动计时器了!
解决方案
解决方案二:
没人知道吗?
解决方案三:
被ifDEBUG或者Debug.Assert之类的调用了啊,看你说到了计时器,估计你是用了Debug.Assert,方法内部调用了计时方法,你应该把计时方法的调用写在Assert外面,用个临时变量接受,然后给Assert传入临时变量如果上面猜测错误,那就不知道了
解决方案四:
引用2楼starfd的回复:
被ifDEBUG或者Debug.Assert之类的调用了啊,看你说到了计时器,估计你是用了Debug.Assert,方法内部调用了计时方法,你应该把计时方法的调用写在Assert外面,用个临时变量接受,然后给Assert传入临时变量如果上面猜测错误,那就不知道了
计时器方法不变的情况下,注释掉三组语句,就可以正常了!好像不是你说的那个问题!不过还是先谢谢你!
解决方案五:
引用2楼starfd的回复:
被ifDEBUG或者Debug.Assert之类的调用了啊,看你说到了计时器,估计你是用了Debug.Assert,方法内部调用了计时方法,你应该把计时方法的调用写在Assert外面,用个临时变量接受,然后给Assert传入临时变量如果上面猜测错误,那就不知道了
我直接在主方法中new了一个System.Threading.Timer,只要没有A、B、C三组语句,这个计时器就能运行,如果有它们,就不能正常运行。我没有使用Debug.Assert去调用计时器。
解决方案六:
在没有代码,各种条件和环境说明的前提下,这个一般很难给出什么建议。
时间: 2024-10-26 06:10:59