LINQ

1.使用类似的数据库语言来操作集合?

错误和异常

异步编程

1.异步和线程的区别:

多线程和异步操作两者都可以达到避免调用线程阻塞的目的。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多线程和异步操作的时机的区别。
线程本质上是进程中一段并发运行的代码,所以线程需要操作系统投入CPU资源来运行和调度;
异步本质上是计算机硬件功能,其操作无须消耗CPU时间的I/O操作;
编写异步操作的复杂程度较高,程序主要使用回调方式进行处理,处理函数可以不必使用共享变量;
多线程是顺序执行,编程简单。但是线程的使用(滥用)会给系统带来上下文切换的额外负担。并且线程间的共享变量可能造成死锁的出现。
当需要执行I/O操作时,使用异步操作比使用线程+同步 I/O操作更合适。I/O操作不仅包括了直接的文件、网络的读写,还包括数据库操作、Web Service、HttpRequest以及.net Remoting 等跨进程的调用。
线程适用那种需要长时间 CPU 运算的场合,例如耗时较长的图形处理和算法执行。

2.委托带有同步Invoke和异步方法BeginInvoke(),EndInvoke()

static void Main(string[] args)
{
OnTest();
OnTest();
OnTest();
OnTest(); //主线程等待5秒才退出,如果线程不等待,那么程序将直接运行到最后一行退出,进而看不到上面的4个异步方法的输出
System.Threading.Thread.Sleep();
Console.WriteLine();
}
///////////////////////////////////////
static void OnTest(int i)
{
Func<int, string> func = (int it) =>
{
System.Threading.Thread.Sleep(it);
Console.WriteLine(it);
return null;
}; //调用委托的异步操作
//func.BeginInvoke(i, ar=> { Console.WriteLine(i); fun.EndInvoke(ar)},null);
func.BeginInvoke(i, null, null);
}

反射

C#学习笔记四(LINQ,错误和异常,异步编程,反射元数据和动态编程)的更多相关文章

  1. PYTHON 100days学习笔记008-4:错误和异常

    目录 Day008_04:python错误和异常 1.语法错误 2.异常 3.异常处理 4.抛出异常 5.用户自定义异常 6.定义清理行为 7.预定义的清理行为 参考文章: python3错误和异常 ...

  2. Python学习笔记五:错误与异常

    一:常见异常与错误 BaseException 所有异常的基类SystemExit 解释器请求退出KeyboardInterrupt 用户中断执行(通常是输入^C)Exception 常规错误的基类S ...

  3. Entity Framework学习笔记(四)----Linq查询(1)

    请注明转载地址:http://www.cnblogs.com/arhat 从本章开始,老魏就介绍一下Entity Framework使用Linq来查询数据,也就是Linq To Entity.其实在E ...

  4. python学习笔记16(错误、异常)

    一.什么是错误,什么是异常 错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象.当错误中断流程时,该程序将尝试寻找异常处理程序(一段告诉程序如何对错误做出响应的代码),以帮助 ...

  5. 吴裕雄--天生自然python学习笔记:Python3 错误和异常

    语法错误 Python 的语法错误或者称之为解析错,是初学者经常碰到的,如下实例 >>>while True print('Hello world') File "< ...

  6. LinQ实战学习笔记(四) LINQ to Object, 常用查询操作符

    这一篇介绍了下面的内容: 查询object数组 查询强类型数组 查询泛型字典 查询字符串 SelectMany 索引 Distinct操作符 排序 嵌套查询 分组 组连接 内连接 左外连接 交叉连接 ...

  7. python3.4学习笔记(四) 3.x和2.x的区别,持续更新

    python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...

  8. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  9. Typescript 学习笔记四:回忆ES5 中的类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

随机推荐

  1. ffmpeg函数02__swr_alloc_set_opts()

    SwrContext *swr_alloc(void);  // 分配重采样的上下文. SwrContext *swr_alloc_set_opts(struct SwrContext *s, int ...

  2. 解决Javaweb中HTTP500的问题

    当我们新建一个Web项目后,运行时可能出现HTTP-500的错误如下图所示  一般是由于路径配置出错 即你电脑上的Tomcat版本与代码本身版本不一致或没有配置路径造成的 解决方法如下 一.鼠标右击你 ...

  3. nginx第六天

    nginx正向代理 反向代理 Nginx正向代理配置 Nginx正向代理使用场景并不多见. 需求场景1: 如果在机房中,只有一台机器可以联网,其他机器只有内网,内网的机器想用使用yum安装软件包,在能 ...

  4. hiho #1485 : hiho字符串(滑动窗口)

    #1485 : hiho字符串 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 如果一个字符串恰好包含2个'h'.1个'i'和1个'o',我们就称这个字符串是hiho字符 ...

  5. Acwing-284-金字塔(区间DP)

    链接: https://www.acwing.com/problem/content/description/286/ 题意: 虽然探索金字塔是极其老套的剧情,但是有一队探险家还是到了某金字塔脚下. ...

  6. Acwing-283-多边形(区间DP)

    链接: https://www.acwing.com/problem/content/285/ 题意: "多边形游戏"是一款单人益智游戏. 游戏开始时,给定玩家一个具有N个顶点N条 ...

  7. 5.反生成url

    # url(r"^all/(?P<article_type_id>\d+)$", home.index,name="index" ), # 在htm ...

  8. 18.configparser模块

    # 创建配置文件 import configparser config = configparser.ConfigParser() # 相当于config = {} 空字典 config[" ...

  9. CSS 内边距 padding 属性

    CSS padding 属性定义元素边框与元素内容之间的空白区域. ㈠padding(填充) ⑴当元素的 padding(填充)内边距被清除时,所释放的区域将会受到元素背景颜色的填充. ⑵单独使用 p ...

  10. 通用DES加密解密方法

    /// <summary> /// DES加密方法 /// </summary> /// <param name="strPlain">明文&l ...