【1】.NET泛型解析(上)【2】.NET泛型解析(下)【3】.NET可变性解析(协变和逆变)【4】.NET委托解析【5】.NET解析(异步委托)【6】.NET解析(反射)【7】.NET解析之线程【8】.NET解析(面向接口编程)【9】.NET解析之CLR内存处理机制【10】.NET解析之CLR垃圾...
分类:
Web程序 时间:
2015-06-30 10:21:21
阅读次数:
121
讨论的问题:网络编程中模型在所难免会遇到这样情况:在线程中需要不断的收取数据并进行处理,对于任何编程语言,如果不用事件、异步、委托等方式处理的,那就只能用查询方式了;如果线程查询中方式没有不阻塞,会出现什么情况?说明:不阻塞有以下两种含义: (1)没有阻塞的意思是把阻塞函数设置成为了非阻塞; (2)...
分类:
编程语言 时间:
2015-06-26 10:44:34
阅读次数:
125
.NetFramework的异步编程模型从本质上来说是使用线程池来完成异步的任务,异步委托、HttpWebRequest等都使用了异步模型。这里我们使用异步委托来说明异步编程模型。首先,我们来明确一下,对于多线程来说,我们需要关注哪些问题。“线程是一段执行中的代码流”,从这句话中,我们可以关注这段代...
分类:
编程语言 时间:
2015-05-13 06:08:00
阅读次数:
152
异步操作的本质 在方法调用前为异步方法指定一个回调函数,方法调用后被线程池中的一个线程接管,执行该方法。主线程立即返回,继续执行其他工作或响应用户请求。如果异步方法执行完 毕,回调函数被自动执行,以处理异步方法的调用结果。 如何实现异步方法呢?C#通过异步委托调用BeginInvoke和...
分类:
编程语言 时间:
2015-05-07 21:50:58
阅读次数:
177
前些日子,看到园子里面有人用老王喝茶的例子讲解了一下同步和异步,虽然没有代码实现,但是能够通俗易懂的讲解了同步、异步、阻塞、非阻塞的关系了,今天借题发挥,用一个热水器加热洗澡的例子来具体演示一下C#使用委托进行异步编程。首先引用MSDN中的一段话来描述一下如何使用异步方式.NET Framework...
在C#中,委托类型是一个类型安全的、面向对象的函数指针。当我们通过delegate关键字定义一个委托类型后,编译器会给委托类型生成三个方法:Invoke、BeginInvoke和EndInvoke。例如对于下面委托类型,可以通过ILSpy查看编译器生成的三个方法。private delegate i...
一、多线程:1、概念:线程:是Windows任务调度的最小单位。线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。多线程:是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务(代码),也就是...
分类:
编程语言 时间:
2015-03-13 18:32:13
阅读次数:
158
大概有4种方法: Dispatcher、异步委托、手动多线程、BackgroundWorker,另外还有一个DispatcherTimer,是定时器。 其中Dispatcher与DispatcherTimer相同,是利用在主线程进行任务优先级的排列来模拟多线程,因此其中实质是单线程 ,所以大负荷的运...
分类:
编程语言 时间:
2015-02-28 20:14:56
阅读次数:
225
最近有个项目需要每天固定的时间去执行指定的事件,发现网上关于这样的文章比较少,而且比较散。通过学习了几篇文章后终于实现了这个功能,在此也特别感谢这些文章的作者们,这也是我第一次在园子里面发文章,望多指教。关于观察者模式,我在这里就不做讲解了,如有不懂,可以参考相关文章。那么开始入正题。主要有三个页面...
static void Main(string[] args) { Func addFunc = (a, b) => a+b; addFunc.BeginInvoke(5, 6, new AsyncCallback((ar) => { var func= ar.AsyncState as...
分类:
其他好文 时间:
2015-01-13 19:29:01
阅读次数:
95