分类 C#进阶 下的文章

C#异步操作(APM)

上一篇文章:多线程和异步的区别

同步:执行一个耗时的操作时,主线程就会一直等待,直到该操作执行完成,我们大部分程序都是同步操作。例如,你给朋友发了一个消息:一起玩王者农药,但是此时你朋友正在游戏中,你为了他能带你躺赢,你就一直等待他把这局打完,然后一起开黑。

异步:执行一个耗时的操作时,主线程不会等待,会继续执行下面的操作,当耗时的操作完成时,它会通过回调的方式告诉主线程我执行完了,然后主程序在回调函数里继续后续的操作。例如,你给朋友发了一个消息:一起玩王者农药,但是此时你朋友正在游戏中,虽然他是大神,你为了证明自己不是坑,不用他带依然可以上分,果断单独开了一局,等你朋友虐菜完成,通知你说,我打完了,要不要我带你飞。

阅读全文 –

多线程和异步的区别

C#中异步和多线程的区别是什么呢?异步和多线程两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为异步和多线程是等同的概念。但是,异步和多线程还是有一些区别的。而这些区别造成了使用异步和多线程的时机的区别。

阅读全文 –

委托和事件

委托是用来处理其他语言(如 C++、Pascal 和 Modula)需用函数指针来处理的情况的。不过与 C++ 函数指针不同,委托是完全面对对象的;另外,C++ 指针仅指向成员函数,而委托同时封装了对象实例和方法。

委托实例的一个有趣且有用的属性是:它不知道也不关心它所封装的方法所属的类它所关心的仅限于这些方法必须与委托的类型兼容。这使委托非常适合于“匿名”调用。

阅读全文 –

泛型

泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个新功能,泛型的引入可以使类和方法将一个或多个类型的指定推迟到客户端代码声明并实例化该类或方法。通过使用泛型类型参数T,您可以编写客户端代码能够使用的单个类,而不致引入运行时强制转换或装箱操作的成本和风险。– MSDN

阅读全文 –

Lambda表达式和Linq

Lambda 表达式是一种可用于创建 委托 或 表达式目录树 类型的匿名函数 。 通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数。 Lambda 表达式对于编写 LINQ 查询表达式特别有用。-MSDN

阅读全文 –

文章归档

分类目录