教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

c#读书笔记,与大家分享(3)

来源:网络收集 时间:2026-08-27
导读: Type的方法:用于获取对应数据类型的成员信息:构造函数,属性,方法和事件等。 (2) Assembly类 它是在System.Reflection命名空间中定义的,允许访问给定程序集的元数据,它也包含可以加载和执行程序集的方法。 在


Type的方法:用于获取对应数据类型的成员信息:构造函数,属性,方法和事件等。

(2) Assembly类

它是在System.Reflection命名空间中定义的,允许访问给定程序集的元数据,它也包含可以加载和执行程序集的方法。

在使用Assembly类前,需要把相应的程序集加载到运行过程中,可以使用Assembly.Load(程序集名)或LoadFrom(程序集所在完整路径)。

查找在程序集中定义的类型:Assembly.GetTypes()方法。

查找定制特性:查找在程序集或类型中定义了什么定制特性的方法取决于该特性相关的对象类型。调用Assembly类的GetCustomAttributes()。





第十二章:错误和异常(297页)

.NET运行库会将每一个程序放到一个更大的try…catch里,捕获任意类型的异常。但是结果并不一定是你想要的。

1. 异常基类:

一般的异常类System.Exception派生于System.Object。通常不抛出System.Exception对象,因为它无法确定错误的本质。

两个重要的类,派生于System.Exception:System.SystemException,System.ApplicationException

2. 捕获异常:

一般把程序分成3种不同类型的代码块:try块,catch块,finally块。

进入try块,没错误就进入finally块,有错误就进catch块,然后进finally块。

302页有个很好的捕获异常的例子。

3. System.Exception属性:

HelpLink:链接到一个帮助文件上,可提供更多信息。Message:描述错误情况的文本。Source:导致异常的应用程序或对象名。StackTrace:堆栈上方法调用的信息。…….

4. try块可以嵌套执行:

try

{ try {……..}

Catch{…….}

}

C
atch{……..}//.NET运行库顺序执行try块,查找何时的处理程序。

5. 用户定义的异常类:





第十三章:线程(317页)

1. 线程:是程序中独立的指令流。

2. 线程的处理:

是使用Thread

c#读书笔记,与大家分享

类来处理的,该类在System.Threading命名空间中。一个Thread实例表示一个线程。

Thread depthchangeThread=new Thread(entryPoint);//实例化一个Thread对象

Thread构造函数需要一个参数,用于指定线程的入口—即线程开始执行的方法,需要使用委托,System.Threading类中定义好了,称为ThreadStart。传送给构造函数的参数必须是这种类型的委托。

Void changecolor() {……}

ThreadStart entryPoint=new ThreadStart(changecolor);//创建开启线程,参数是启动线程的方法

Thread depthchangeThread=new Thread(entryPoint);//创建线程

=”…”;//给线程起名

depthchangeThread.Start();//开启线程

启动了一个线程后,还可以挂起(Suspend()),恢复(Resume())或终止(Abort())它。

一般不直接使用Abort()来终止线程,使用异常机制可以更安全的终止线程。

3. 线程的优先级:

线程的优先级可以定义为ThreadPriority枚举的值。注意每个进程也有相应的优先级,给线程指定较高的优先级,可以确保它在该进程中比其他线程优先执行。

4. 同步:

使用线程的一个重要的方面是同步访问多个线程访问的任何变量。同步是指在某一时刻只有一个线程可以访问变量。

C#为同步访问提供简单方式:lock

lock(x)

{

DoSomthing();

}

Lock语句把变量放在圆括号中,以包装对象,称为独占锁或排它锁。当变量被包装在独占锁中时,其他线程就不能访问该变量。

控制变量的访问机制都可以通过.NET基类System.Threading.Monitor来控制。

不能滥用同步,因为它可能会降低性能。也可能造成死锁和竟态条件等问题。

死锁:两个线程都要访问被互锁的资源时发生。

竟态条件:当几个线程试图访问同一个数据,但没有充分考虑其他线程的执行情况时,就会发生竟态。它很少中断进程的执行,但是可能导致数据损坏。

5. 使用ThreadPool创建线程

通过Thread类,一次使用一个线程,来创建和删除线程。这种方式是很昂贵的(CPU密集型)。CLR包含一个内置的线程池,可以通过ThreadPool来访问。

ThreadPool有25个可用的线程。在确定使用ThreadPool类还是Thread类时,要考虑以下问题:要以最简单的方式创建和删除线程,使用的线程的性能要优先考虑时用ThreadPool类。

要控制所创建线程的优先级,使用的线程的寿命较长时,建议使用Thread类。

…… 此处隐藏:287字,全部文档内容请下载后查看。喜欢就下载吧 ……
c#读书笔记,与大家分享(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/90381.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)