Bug列表
1. 2010.6.8.22.00 SchedulerDemo.Scheuler.cs public void RemoveTask(int _taskID) 213 行 “未将对象引用设置到对象实例”
估计产生原因:在找到相应的任务后,应该退出循环。但代码中没有退出循环,导致循环继续进行,而这时候整个循环中可能已经执行过删除等操作,导致一些错误产生。
解决:添加循环退出语句 break. 2010.6.8.22.10
评估:错误不再出现。
2. 2010.6.8.22.00 SchedulerDemo.Scheuler.cs public void RemoveTask(int _taskID) 184 行 “未将对象引用设置到对象实例”
估计产生原因:这时候的frameTaskHead已经为空了,可能是已经删除掉了,或者根本就没有注册。没有检测这个边界,所以出现异常。类似的地方应该不止这一个,凡是引用current的属性的地方都可能因为current本身为null而出现这个问题。
要修改这个方法内的所有类似的地方才可以消除隐患。
解决:在引用current属性前,都先检查一下 current != null ,但这似乎有点傻....特别是存在while循环的情况下,每次都要多检查一次,把这个边界检查放在外面就好多了,但仍然觉得不够优雅,或许存在着更好的方法等着我们去寻找。不过目前先这样啦。