2011年9月21日
摘要: lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。此语句的形式如下:Object thisLock = new Object();lock (thisLock){ // Critical code section}lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。线程处理(C# 编程指南) 这节讨论了线程处理。lock 调用块开始位置的 Enter 和块结束位置的 Exit。通常,应避免锁定 public 类型,否则实例将超出代码的控制范围。常见的结构 ... 阅读全文
posted @ 2011-09-21 12:33 linpiner 阅读(432) 评论(0) 推荐(0) 编辑
  2011年9月19日
摘要: 目前所作的项目遇到一个bug,花了一个星期调试和解决,找原因花的时间最长,而真正花在解决上的时间只有一天半。找原因的时间有2天也是浪费的,因此总结下。如果一个程序部署在相同的环境下,原来可以运行,突然不行了,而且程序能运行一部分。那么出现bug的原因是什么呢?一个是环境因素,包括程序移植引起的,软件升级引起的等等;一个是程序本身的逻辑错误;一个是人为操作。(还有什么其他的原因,以后再补充。)对于一个bug,结合上下文,程序员应能分析下大致原因。对于这个bug,相同的环境,排除了环境原因;相同的环境下以前都可用,突然不能用,排除程序本身逻辑错误;那么就是人为操作的原因了。这个程序是个简化的Loa 阅读全文
posted @ 2011-09-19 17:36 linpiner 阅读(877) 评论(0) 推荐(0) 编辑