摘要:我们将在这里进一步讨论一些.NET类,以及他们在多线程编程中扮演的角色和怎么编程。它们是: System.Threading.ThreadPool 类 System.Threading.Timer 类 如果线程的数目并不是很多,而且你想控制每个线程的细节诸如线程的优先级等,使用Thread是比较合适的;但是如果有大量的线程,考虑使用线程池应该更好一些,它提供了高效的线程管理机制来处理多任务。 对于定期的执行任务Timer类是合适的;使用代表是异步方法调用的首选。System.Threading.ThreadPool Class 当你创建应用程序时,你应该认识到大部分时间你的线程在空闲的...
阅读全文
随笔分类 - C# 知识点
摘要:一、创建一个Windows Service1)创建Windows Service项目2)对Service重命名将Service1重命名为你服务名称,这里我们命名为ServiceTest。二、创建服务安装程序1)添加安装程序之后我们可以看到上图,自动为我们创建了ProjectInstaller.cs以及2个安装的组件。2)修改安装服务名右键serviceInsraller1,选择属性,将ServiceName的值改为ServiceTest。3)修改安装权限右键serviceProcessInsraller1,选择属性,将Account的值改为LocalSystem。三、写入服务代码1)打开Ser
阅读全文
摘要:泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。应用场景:1.泛型避免装箱拆箱的性能损耗 2.代码复用,比如用在ORM中 3.参数的范围约束泛型(generic)是C#语言2.0和通用语言运行时(CLR)的一个新特性。泛型为.NET框架引入了类型参数(type parameters)的概念。类型参数使得设计类和方法时,不必确定一个或多个具体参数,其的具体参数可延迟到客户代码中声明、实现。这意味着使用泛型的类型参数T,写一个类MyList,客户代码可以这样调用:MyList, MyList或 MyL
阅读全文
摘要:依赖注入常见有三种:接口注入、构造子注入、设置注入1、 接口注入 我们常常借助接口来将调用者与实现者分离。如:public class ClassA { private InterfaceB clzB; public init() { Ojbect obj = Class.forName(Config.BImplementation).newInstance(); clzB = (InterfaceB)obj; }} 上面的代码中,ClassA依赖于InterfaceB的实现,如何获得InterfaceB实现类的实例?传统的方...
阅读全文
摘要:在我们深入探讨C#序列化和反序列化之前我们先要明白什么是序列化,是.NET运行时环境用来支持用户定义类型的流化的机制。序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。其目的是以某种存储形成使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方。.NET框架提供了三种序列化的方式:1、是使用BinaryFormatter进行序列化;2、使用SoapFormatter进行序列化;3、使用XmlSerializer进行序列化。第一种方式提供了一个简单的二进制数据流以及某些附加的类型信息,而第二种将数据流格式化为XML存储;第三种其实
阅读全文
摘要:反射指的是一个编程技巧,在当前应用领域的运行时间内,开发者可以利用它授权一个程序集检查并修改自身或其他程序集。那些检查能够让开发者执行比用其他方法实现的更为强大的后期捆绑功能。.NET Framework中生成的每个程序集都包含了描述程序集以及程序集中的类或结构的元数据。应用这个元数据,反射能够列举...
阅读全文
摘要:当多个用户同时更新同一数据的时候,由于更新可能导致数据的不一致性,使得程序的业务数据发生错误,这种情况可以称之为并发。在ADO .NET中,并发的处理可以通过三种方式来控制:保守式并发控制、开发式并发控制以及最后更新生效方式。一、保守式并发控制:数据从数据库取出之后,一直处于锁定的状态,其他用户不能获取该数据,直至数据更新完毕之后,用户才能取出该数据进行操作。此种控制方式对于性能和资源占用得很多,由于只能同时有一个用户对数据享用操作权,所以可能会在正常业务中,影响其他用户的处理进程。但此控制方式可以完全保证数据的完整性。该方式可以通过.NET提供的事务机制来实现,前提是数据源需要支持事务。二、
阅读全文
摘要:在《Design Patterns:Elements of Resuable Object-Oriented Software》中的定义是:Ensurea class only has one instance,and provide a global point of access to。它的主要特点不是根据客户程序调用生成一个新的实例,而是控制某个类型的实例数量-唯一一个。(《设计模式-基于C#的工程化实现及扩展》,王翔)。也就是说,单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问点。 一、经典模式:public c.
阅读全文
浙公网安备 33010602011771号