06 2017 档案

摘要:一. 基本概念 1. 什么是特性? MSDN官方给出的定义时:公共语言运行时允许添加类似关键字的描述声明,叫做特性,它对程序中的元素进行标注,如类型、字段、方法和属性等。Attribute和Microsoft .Net Framework文件的元数据(metadata)保存在一起,可以用来向运行时描 阅读全文
posted @ 2017-06-28 08:37 Yaopengfei 阅读(1718) 评论(0) 推荐(0) 编辑
摘要:1. 线程的异常处理 我们经常会遇到一个场景,开启了多个线程,其中一个线程报错,导致整个程序崩溃。这并不是我们想要的,我需要的结果是,其中一个线程报错,默默的记录下,其它线程正常进行,保证程序整体可以走下来。 解决方案:给函数体加try-catch,只让报错线程异常,其它线程可以正常进行。 运行结果 阅读全文
posted @ 2017-06-25 11:23 Yaopengfei 阅读(406) 评论(8) 推荐(0) 编辑
摘要:1. 方法名前只有async,但是方法中Task实例前没有await关键字,该方法和普通方法没有什么区别,但是会报一个警告。 结果: 2. 用法:方法名前加async,如果方法无返回值,用async Task 代替async void ,await放到Task实例前面,表示执行完Task线程后,方可 阅读全文
posted @ 2017-06-23 20:02 Yaopengfei 阅读(415) 评论(0) 推荐(0) 编辑
摘要:一. Task开启多线程的三种形式 1. 利用TaskFactory下的StartNew方法,向StartNew传递无参数的委托,或者是Action<object>委托。 2. 利用Task.Run()开启多线程,能向其中传递无参数的委托,有参数的可以使用 Task.Run(()=>{ TestTh 阅读全文
posted @ 2017-06-23 20:00 Yaopengfei 阅读(626) 评论(0) 推荐(0) 编辑
摘要:一. Thread多线程 1. 两种使用方式 通过F12查看Thread后,发现有两类构造函数,ParameterizedThreadStart和ThreadStart,其中 ThreadStart:无参无返回值的委托 ParameterizedThreadStart:无返回值,但是有一个objec 阅读全文
posted @ 2017-06-23 19:59 Yaopengfei 阅读(369) 评论(0) 推荐(0) 编辑
摘要:一. BeginInvoke最后两个参数的含义 倒数第二个参数:指该线程执行完毕后的回调函数;倒数第一个参数:可以向回调函数中传递参数。 下面以一段代码说明: 结果: 二. 异步调用的三种书写 在上述代码中,我们发现BeginInvoke中,除了我们介绍的最后两个参数外,还有一个参数,传递进去了na 阅读全文
posted @ 2017-06-20 19:24 Yaopengfei 阅读(560) 评论(0) 推荐(0) 编辑
摘要:一. 综述 经过两个多个周的整理,异步多线程章节终于整理完成,如下图所示,主要从基本概念、委托的异步调用、Thread多线程、ThreadPool多线程、Task、Parallel并行计算、async和await、线程特殊处理、委托赋值的几种形式等九个方面来介绍异步多线程。 二. 基本概念的梳理 1 阅读全文
posted @ 2017-06-17 16:07 Yaopengfei 阅读(418) 评论(0) 推荐(0) 编辑
摘要:一. IO读写 这里主要包括文件的读、写、移动、复制、删除、文件夹的创建、文件夹的删除等常规操作。 注意:这里需要特别注意,对于普通的控制台程序和Web程序,将"相对路径"转换成"绝对路径"的方法不一致。 (1). 在web程序中,可以使用HttpContext.Current.Server.Map 阅读全文
posted @ 2017-06-11 20:49 Yaopengfei 阅读(2291) 评论(1) 推荐(0) 编辑
摘要:一. 泛型委托 所谓的泛型委托,即自定义委托的参数可以用泛型约束,同时内置委托Func和Action本身就是泛型委托。 将上一个章节中的Calculator类中的方法用自定义泛型委托重新实现一下。 1 public class Calculator2 2 { 3 //传统解决方案一:在该类中声明多个 阅读全文
posted @ 2017-06-11 16:18 Yaopengfei 阅读(1349) 评论(0) 推荐(0) 编辑
摘要:一. 委托发展史和基本用法 说起委托,每个人可能都会对他有不同的理解,结合实战中委托的使用,我对其理解是:委托和类一样,是用户的一个自定义类型,委托可以有参数、有返回值,委托的关键字是delegate,委托是方法的抽象,有了委托的存在,使得方法可以作为参数传递给另一个方法,同时调用委托的时候,委托所 阅读全文
posted @ 2017-06-07 21:27 Yaopengfei 阅读(2213) 评论(1) 推荐(2) 编辑
摘要:一. 覆盖/写 1. 关键字:new 2. 含义:子类继承父类中的普通方法,如果在子类中写了一个和父类中完全相同的方法,子类中会报警告(问是否显式的隐藏父类的中的方法),如果在子类中的方法前加上new关键字,则警告消失。 注意: * 虽然可以不使用 new 修饰符来隐藏成员,但将收到编译器警告。 如 阅读全文
posted @ 2017-06-04 11:46 Yaopengfei 阅读(2189) 评论(2) 推荐(0) 编辑
摘要:一. 面向对象思想 1. 面向过程(OP)和面向对象(OO)的区别: (1):面向过程就是排着用最简单的代码一步一步写下去,没有封装,当业务复杂的时候,改动就很麻烦了 (2):面向对象将复杂的业务分离出来几个类,然后将业务封装到类中的方法进行实现,很简洁。 2. 面向对象的三大特征 (1). 封装: 阅读全文
posted @ 2017-06-04 11:45 Yaopengfei 阅读(3642) 评论(2) 推荐(6) 编辑
摘要:一. Lambda和linq入门 lambda表达式又叫点标记,linq表达式又叫查询表达式,下面有三个简单的案例说明一下二者的基本用法,详细用法会在后续章节中更新。 二. 事例 1. 准备学生信息。 2. 查找年龄小于30岁的学生 lambda代码如下: linq代码如下: 3. 部分字段查找测试 阅读全文
posted @ 2017-06-03 21:30 Yaopengfei 阅读(425) 评论(0) 推荐(0) 编辑