解决"由于线程停在某个无法进行垃圾回收的点......."(原)

场景:有一个二十几个类构成的一个生产排产算法,用了一段时间后发现了一个怪现象,总时抛同:“由于线程停在某个无法进行垃圾回收的点(可能是因为已对代码进行了优化),因此无法计算表达式的值。”这样一个异常,这个异常是在一个方法调用时即产生,而此时方法内容并未开始执行
问题:作为政治任务入手进行处理。
        1、分块代码注释,确定错误源,确定到行级。
        2、这行代码居然跑到了另一个类.................................................
        3、发现问题:参数中有一个是个“结构”
        4、代码太乱了,一行一行分析不太可行了,不确定是不是这个原因,把Struct改成Class,OK通过。
        5、看一下后续代码,原来这个“结构”参数后来补N多地方使用。
 
        小小分析了一下,由于方法内部逻辑问题,造成同一结构所提供的“值”不一致导致此现象,不过这个错误信息也相关的有才。
 
解决办法:
        不改变原程序设计和代码,在参数前指定一下:来个强制传址引用 ref,OK皆大欢喜,所有地方OK。
posted @ 2009-07-21 17:15  禹过天晴  阅读(3603)  评论(2编辑  收藏  举报