2009年4月19日
摘要: 继续上一篇c#线程初探(一),这里介绍线程同步的常见概念和注意事项。3、同步使用线程的一个重要方面是同步访问多个线程访问的任何变量。(1)、“同步”:所谓同步,是指在某一时刻只有一个线程可以访问变量。同步问题只会发生在下述场景:至少有一个线程要写入一个变量,而与此同时,其他线程正在读取或者写入同一个变量。这和大学课程《操作系统》教的线程同步是一个道理。c#为同步访问变量提供... 阅读全文
posted @ 2009-04-19 09:28 JeffWong 阅读(1483) 评论(0) 推荐(2) 编辑
  2009年4月18日
摘要: c#和.net基类为开发多线程应用程序提供了强大的支持。下面是我看书和结合网上的一些资源整理出来的笔记。因为线程相关的知识比较繁杂和高深(并且本人开发经验欠缺),所以写的很浅显甚至幼稚,理解不妥之处在所难免。1.怎样创建一个线程(常用的创建方式) CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://w... 阅读全文
posted @ 2009-04-18 19:53 JeffWong 阅读(4005) 评论(2) 推荐(1) 编辑
  2009年4月14日
摘要: 1、适配器模式。“适配器”,顾名思义,就是将一个类的接口转换成另外一个接口,使得原本由于接口不兼容不能一起工作的那些类一起工作。在软件开发中,系统的数据和行为都正确,但接口不符时,我们应该考虑适配器。举例来说,我们高中都学习过中文版的《论语》(里的几段著名的话),假如现在到了大学后,英语老师要我们学英文版的《论语》,以前学中文版的时候是看中文书,现在学英文版的,当然要看英文... 阅读全文
posted @ 2009-04-14 18:38 JeffWong 阅读(2317) 评论(0) 推荐(0) 编辑
  2009年4月13日
摘要: 假想场景:hp和apple是全球知名的电脑生产厂家,起初他们各自的电脑操作系统分别是linux和macintosh,microsoft是软件行业的龙头。为了吸引更多客户购买电脑,hp和apple请ms为他们开发两款最常用的软件,办公软件和及时通讯工具。ms结了订单后,分别为hp和apple开发了office和msn。随着微软windows操作系统的大面积普及,hp的linux和apple的mac使... 阅读全文
posted @ 2009-04-13 20:12 JeffWong 阅读(810) 评论(0) 推荐(0) 编辑
  2009年4月11日
摘要: 在之前的一篇文章里,我们简单地实现了对一维数组的四种排序算法,但是在实际的项目中,我们排序的方式可能(几乎是一定)不止仅仅按照数字排序。我们常常按照合适的需要的排序方式进行排序,比如航班信息可能按时间排序,商品信息可能按价格排序等等。下面改进之前的那一篇“c#实现冒泡、快速、选择和插入排序算法”里的代码,利用委托实现可以对不同对象(实例中是Car)的不同类型(实例中是价格和... 阅读全文
posted @ 2009-04-11 19:25 JeffWong 阅读(845) 评论(0) 推荐(0) 编辑
摘要: 1.单一职责原则(SRP)“单一职责模式”按照字面理解就是,一个类的功能要“单一”或者专一,不能武断地把很多相关或者不相关的功能强制写进一个类里去,它的准确解释是:“就一个类,应该仅有一个引起它变化的原因”。我个人认为这个原则主要就是教我们如何抽象并“封装”类。举例:对于初学者来说,我们几乎都写过的代码... 阅读全文
posted @ 2009-04-11 10:37 JeffWong 阅读(671) 评论(0) 推荐(0) 编辑
  2009年4月8日
摘要: 3.回答有关“至少”的问题 前言:“至多”的对立面是“至少”。通常,采用“至多”问题中表述的技巧变体,就可以解决“至少”问题。当解决“至少”问题时,把他们换成“没有更少的”说法会更好理解。问题(6):找到至少选择两门课程的学生。 CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHi... 阅读全文
posted @ 2009-04-08 20:00 JeffWong 阅读(652) 评论(1) 推荐(1) 编辑
  2009年4月5日
摘要: 最近看sql的书,这里自己举个例子来温故知新一遍常用常见的sql查询。好了,code is cheap,代码来了。 CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->-- 新建一个数据库TestDbCREATE DATABASE [TestDb]... 阅读全文
posted @ 2009-04-05 13:03 JeffWong 阅读(767) 评论(1) 推荐(1) 编辑
  2009年4月3日
摘要: 观察者模式又叫发布-订阅模式。它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生改变时,会通知所有观察者对象,使它们能够自动更新自己。从上面的描述中,我们可以抽象出主题Subject类和观察者Observer类,”一对多“的关系告诉我们,观察者可以有多个,而主题只有一个。主题有一个很有趣的东西叫”状态“,因为... 阅读全文
posted @ 2009-04-03 20:58 JeffWong 阅读(634) 评论(0) 推荐(0) 编辑
  2009年3月29日
摘要: 当我们使用asp.net开发网站,每运行一个页面,这个页面都将经历一个生命周期。了解页的生命周期非常重要,因为这样我们才能在合适的生命周期编写代码实现预期效果。网上有一句话概括非常精辟:"Do the right thing at the right time in the right place."。微软的文档给出的ASP.NET生命周期如下: Code highlighting produce... 阅读全文
posted @ 2009-03-29 18:51 JeffWong 阅读(802) 评论(0) 推荐(0) 编辑