摘要: 首先说基于面向对象的以下两个设计原则,不能把所有事情封装到一个类中:OCP原则,即开放关闭原则,指设计应该对扩展开放,对修改关闭。策略模式,英文名Strategy Pattern,指定义算法族,分别封装起来,让他们之间可以相互替换,此模式使得算法的变化独立于客户而应该创建客户类和服务类,客户类将引用服务类以接受具体的服务,而服务类可能有多种,所以客户类中最好引用的是众多服务类的一个接口类型的实例,通过接口实例实现具体服务方法的调用。该接口实例可以通过以下三种方法实现在客户类中的实例化(依赖注入):Setter模式通过一个客户类中的一个带参的set方法将服务类实例化后传入优点是灵活,客户类实例化 阅读全文
posted @ 2013-04-10 18:06 赶路人之刚出发 阅读(315) 评论(0) 推荐(0) 编辑
摘要: AutoResetEvent是EventWaitHandle的一个简单包装,内部没有额外的任何逻辑。它最大的特点就是,调用了Set方法将事件设为true之后,其中一个等待线程得到执行后,它会自动调用Reset方法,将事件信号设为false,以阻塞其它的线程。相当于放一个线程进来,门自动就关了(自动门)。例子,使用AutoResetEvent实现一个简单的线程同步锁。 1 private class SimpleWaitLock : IDisposable 2 { 3 //初始化一定要是true,否则,第一个调用Enter方法的线程会被阻塞 4 ... 阅读全文
posted @ 2013-04-10 16:31 赶路人之刚出发 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 信号量(semaphore)是内核维护的一个Int32的变量。信号量为0时,在信号量上等待的线程会阻塞;信号量大于0时,就解除阻塞。主要方法:Release():就是一个加1的操作Release(int32 releasecount):就是一个加releasecount的操作。初始化semaphore时,可以指定最大和最小信号量的值。用Sempphore实现同样功能的同步锁,如下为一个只允许1个并发入口(即1次只能有一个线程访问)的示例: 1 public class Program 2 { 3 private class SimpleWaitLock : IDisp... 阅读全文
posted @ 2013-04-10 16:05 赶路人之刚出发 阅读(450) 评论(0) 推荐(0) 编辑
摘要: Mutex可以实现跨进程的同步,当需要控制应用程序只有一个进程实例时,可通过判断相同名字的Mutex资源是否已存在来判断程序是否已经启动。示例如下: 1 static void Main() 2 { 3 bool createdNew=false; 4 Mutex mutex=new Mutex(true,"consoleapplication1",out createdNew); 5 if (!createdNew) 6 { 7 ... 阅读全文
posted @ 2013-04-10 15:36 赶路人之刚出发 阅读(411) 评论(0) 推荐(0) 编辑
摘要: thread.join 阅读全文
posted @ 2013-04-10 15:24 赶路人之刚出发 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 索引的重要性数据库性能优化中索引绝对是一个重量级的因素,可以说,索引使用不当,其它优化措施将毫无意义。聚簇索引(Clustered Index)和非聚簇索引(Non- Clustered Index)最通俗的解释是:聚簇索引的顺序就是数据的物理存储顺序,而对非聚簇索引的索引顺序与数据物理排列顺序无关。举例来说,你翻到新华字典的汉字“爬”那一页就是P开头的部分,这就是物理存储顺序(聚簇索引);而不用你到目录,找到汉字“爬”所在的页码,然后根据页码找到这个字(非聚簇索引)。 阅读全文
posted @ 2013-04-10 14:25 赶路人之刚出发 阅读(196) 评论(0) 推荐(0) 编辑
摘要: HashTable构造函数源码如下:View Code public Hashtable(int capacity, float loadFactor){ if (capacity < 0) { throw new ArgumentOutOfRangeException("capacity", Environment.GetResourceString("ArgumentOutOfRange_NeedNonNegNum")); } if ((loadFactor < 0.1f) || (loadFactor > 1f)) { throw 阅读全文
posted @ 2013-03-22 16:03 赶路人之刚出发 阅读(252) 评论(0) 推荐(0) 编辑
摘要: .NET3.0去年就已经推出了,最近因为要给一个项目组作个介绍稍微研究了一下。 .NET3.0在框架上没有任何改进,仍然沿用.net2.0框架,只是在.net2.0基础上增加了4个Components, WPF(Windows Presentation Foundation)新一代windows界面显示系统, WCF(Windows Communication Foundation)新一代Wind... 阅读全文
posted @ 2007-12-28 17:11 赶路人之刚出发 阅读(965) 评论(1) 推荐(0) 编辑
摘要: 可以在AtlasControlToolkit的示例工程里看到CascadingDropDown控件的serviceMethod中用到的参数是通过XML解析出来的,如果要用自己的程序控制该参数的生成也很简单,如下所示: [WebMethod] public AtlasControlToolkit.CascadingDropDownNameValue[] GetDropDownConten... 阅读全文
posted @ 2006-08-15 19:49 赶路人之刚出发 阅读(720) 评论(1) 推荐(0) 编辑
摘要: 可从:http://download.microsoft.com/download/B/8/1/B8176A86-5D85-41B8-819B-19A9ACF1CE8C/AtlasControlToolkit.exe 处下载,SampleWebSite为一个AtlasControlToolkit应用实例,写的非常好,效果也很nice.首先AtlasControlExtender下的AtlasCon... 阅读全文
posted @ 2006-08-15 19:44 赶路人之刚出发 阅读(311) 评论(0) 推荐(0) 编辑