摘要: usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Runtime.Remoting.Messaging;usingSystem.Threading;namespaceWebApplication1{publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(objectsender,Even.
阅读全文
摘要: 聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致,聚集索引表记录的排列顺序与索引的排列顺序一致,优点是查询速度快,因为一旦具有第一个索引值的纪录被找到,具有连续索引值的记录也一定物理的紧跟其后。聚集索引的缺点是对表进行修改速度较慢,这是为了保持表中的记录的物理顺序与索引的顺序一致,而把记录插入到数据页的相应位置,必须在数据页中进行数据重排,降低了执行速度。建议使用聚集索引的场合为: a.此列包含有限数目的不同值; b.查询的结果返回一个区间的值; c.查询的结果返回某值相同的大量结果集。 非聚集索引指定了表中记录的逻辑顺序,但记录的物理顺序和索引的顺序不一致...
阅读全文
摘要: 出处 http://www.studyday.net/2010/08/99By kuco | Published: 2010/08/27
阅读全文
摘要: 当进行耗时的工作时,可以使用异步委托执行。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Runtime.Remoting.Messaging;namespaceConsoleApplication2{classProgram{staticvoidMain(string[]args){facHandlerf=newfacHandler(Fac);//开异步方法开始执行IAsyncResultresult=f.BeginInvoke(10,newAsyncCall.
阅读全文
摘要: 同步事件和等待句柄用于解决复杂的同步情况。比如一个大的计算步骤包含3个步骤result = first term + second term + third term,如果现在想写个多线程程序,同时计算first term,second term 和third term,等所有3个步骤计算好后再把它们汇总起来,我们就需要使用到同步事件和等待句柄。 同步事件分有两个,分别为AutoResetEvent和ManualResetEvent,这两个类可以用来代表某个线程的运行状态:终止和非终止。 等待句柄用来判断ResetEvent的状态,如果是非终止状态就一直等待,否则放行,让等待句柄下面的代码继.
阅读全文
摘要: 前两篇简单介绍了线程同步lock,Monitor,同步事件EventWaitHandler,互斥体Mutex的基本用法,在此基础上,我们对它们用法进行比较,并给出什么时候需要锁什么时候不需要的几点建议。最后,介绍几个FCL中线程安全的类,集合类的锁定方式等,做为对线程同步系列的完善和补充。 1.几种同步方法的区别 lock和Monitor是.NET用一个特殊结构实现的,Monitor对象是完全托管的、完全可移植的,并且在操作系统资源要求方面可能更为有效,同步速度较快,但不能跨进程同步。lock(Monitor.Enter和Monitor.Exit方法的封装),主要作用是锁定临界区,使临界区代.
阅读全文
摘要: 本篇继续介绍WaitHandler类及其子类Mutex,ManualResetEvent,AutoResetEvent的用法。.NET中线程同步的方式多的让人看了眼花缭乱,究竟该怎么去理解呢?其实,我们抛开.NET环境看线程同步,无非是执行两种操作:一是互斥/加锁,目的是保证临界区代码操作的“原子性”;另一种是信号灯操作,目的是保证多个线程按照一定顺序执行,如生产者线程要先于消费者线程执行。.NET中线程同步的类无非是对这两种方式的封装,目的归根结底都可以归结为实现互斥/加锁或者是信号灯这两种方式,只是它们的适用场合有所不。下面我们根据类的层次结构了解WaitHandler及其子类。 1.W.
阅读全文
摘要: - 本篇从Monitor,Mutex,ManualResetEvent,AutoResetEvent,WaitHandler的类关系图开始, 希望通过本篇的介绍能对常见的线程同步方法有一个整体的认识,而对每种方式的使用细节,适用场合不会过多解释。让我们来看看这几个类的关系图: 1.lock关键字 lock是C#关键词,它将语句块标记为临界区,确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。方法是获取给定对象的互斥锁,执行语句,然后释放该锁。 MSDN上给出了使用lock时的注意事项通常,应避免锁定 publ
阅读全文
摘要: 当我们导出的Excel文件要求严格的格式时,就需要把Excle做成模板,在导出时首先复制原来做好的模板,然后在模板上操作Excel就会保留原来的格式,但是在C#操作文件时会遇到一些权限上的问题,我们这里以操作Excel为例说明一下:首先配置DCOM:解决操作权限问题,具体步骤如下:1:在服务器上安装office的Excel软件.2:在"开始"->"运行"中输入dcomcnfg.exe启动"组...
阅读全文