CLR VIA C# 学习笔记】的更多相关文章

原文:.NET编程和SQL Server ——Sql Server 与CLR集成 (学习笔记整理-1) 一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数等十分有限,经常需要外部的代码来执行一些繁重的移植: 2.与CLR集成可将原本需要独立的程序来实现的功能迁移到SQL Server 内部进行数据操作: 3.T-SQL数据查询语言在返回数据集方面很好,但是除此之外表现不佳.与CLR的集成可解决这一问题: 4..NET的操作代码和执行的速度比T-SQL…
第1章 CLR的执行模型 托管模块的各个组成部分:PE32或PE32+头,CLR头,元数据,IL(中间语言)代码. 高级语言通常只公开了CLR的所有功能的一个子集.然而,IL汇编语言允许开发人员访问CLR的所有功能. JITCompiler函数负责将一个方法的IL代码编译成本地CPU指令.由于IL是“即时”(just in time)编译的,所以通常将CLR的这个组件称为JITter或者JIT编译器. Microsoft定义了一个“公共语言规范”(Common Language Specific…
第19章 可空类型 1)使用Nullable<T>可将int32的值类型设置为Null,CLR会在Null时默认赋值为0; 如:Nullable<T> x=null; //使用x. GetValueOrDefault() 2)也可使用?代替,如下: Point? pt = null;//new Point(); int x1 = pt.GetValueOrDefault().X; int y1 = pt.GetValueOrDefault().Y; 3)注意使用可空实例IL会生成大…
一 线程池基础 1.线程池维护了一个操作请求队列,将请求的操作追加到线程池队列中,线程池的代码从队列中提取操作项,派发给线程池中的线程; 2.CLR初始化时,线程池中是没有线程的,当有操作派发给线程池时,如果线程池中没有线程或者没有空闲状态的线程,将会创建一个新的线程执行派发的操作,如果有空闲状态的线程,将直接派发一个空闲状态的线程执行操作; 3.线程池线程完成操作任务后,线程不会被销毁,而是返回线程池,进入空闲状态,等待响应另一个派发请求;4.当一个线程池线程处于空闲状态一段时间后(不同的CL…
一 使用线程的理由 1.可响应性(通常是对于客户端GUI应用程序);2.性能,多个CPU(或多核CPU)能并发执行多个线程,同时执行多个操作能提升性能. 二 线程开销 线程有空间(内存耗用)和时间(运行时的执行性能)上的开销.1.创建线程,让线程进驻系统以及最后销毁线程需要空间和时间的消耗;2.系统进行上下文切换,选择要执行的线程,CPU执行所选的线程,该线程只能在一个"时间片"里去执行线程操作, 实际上,上下文切换对性能影响很大. 三 线程调度和优先级 1.每个线程都分配了0(最低)…
类的内存分配:http://www.cnblogs.com/JimmyZhang/archive/2008/01/31/1059383.html 关键字: abstract     (类)该类不能构建实例     (方法/属性/事件)表示构建派生类型的实例之前派生类型必须重写并实现这个成员 ) (常量/字段)不允许 virtual       (类)不允许                     (方法/属性/事件)表示这个成员可以由派生类重写 (常量/字段)不允许 override      …
一 任务 可以调用ThreadPool的QueueUserWorkItem方法发起一次异步的计算限制操作.但这个技术有很多限制.最大的问题是没有内建的机制让你知道操作在什么时候完成和操作完成时的返回值.为了克服这些限制(并解决其他一些问题),Microsoft引入了任务的概念. //调用QueueUserWorkItem ThreadPool.QueueUserWorkItem(DoSomeThing, ); //用任务来做相同的事情 Task.Run(() => DoSomeThing());…
前言 让拖管代码对象和非托管对象协同工作的过程称为互用性(Interoperability),通常简称为 Interop. P/Invoke在托管代码与非托管代码交互式时产生一个事务(Transition),这通常发生在使用平台调用服务(Platfrom Invocation Services)即P/Invoke.允许托管代码调用平台(Platfrom)相关的非托管代码(c++.VB.Delphi....) Com Interop 一种服务,它使 .NET Framework 对象能够与 COM…
在学习.NET的时候,因为一些疑问,让我打算把.NET的类型篇做一个总结.总结以三篇博文的形式呈现. 这篇博文,作为三篇博文的第一篇,主要探讨了.NET Framework中的基本类型,以及这些类型一些重要的特性. 第二篇中,我会探讨.NET 是如何实现两个对象的比较的,其中会用到第一篇中的基础和结论. 第三篇,我从CLR中的常用容器出发,来探讨泛型以及它们背后的数据结构. 下面,我们从类型说起. Primitive, Reference and Value 首先将这三种类型放在一起是不科学的.…
最近在学习linq的一些基础知识,看了c#高级编程及阅读了园子内部几篇优秀的博文,有所体会,感觉应该记录下来,作为以后复习使用.都是一些最基础的知识,大致分为三个部分:linq预备知识:linq查询:linq to sql.新手可以看看,大牛可以指点指点,谢谢了. 一.linq预备知识: 1.隐式类型 在隐式类型出现之前,做法是 int a = 10; string str = "abc"; 使用隐式类型,代码如下: var a = 10; var str = "abc&qu…