异步编程模型(APM,Asynchronous Programming Model)
2013-02-17 10:22
519 查看
异步编程模型(APM,Asynchronous Programming Model)
优点:
1. 将资源使用率降低,因为如果是同步的话,会发生阻塞而导致在线程池中启动多个线程,而CLR线程占用资源是很多的。
2. 因为减少了线程,从而也减少了上下文的切换。
3. 垃圾回收器的速度加快,因为,每次垃圾回收都会将进程内的所有线程挂起,线程变少,挂起和恢复的就快,垃圾回收器查找线程的栈的速度也会加快。
4. 加快调试速度。
5. 加快程序运行速度。
6. 保持GUI程序的很好的可响应性。
支持APM的主要类:
Stream
Dns
Socket
WebRequest
SerialPort
SqlCommand
所有委托类型。
BeginXxx方法和对应的同步方法的前面的参数是一致的,只是多了2个参数
useCallback和stateObject
useCallback是一个委托,定义如下
public delegate void AsyncCallback(IAsyncResult ar);
在回调方法中可以查询IAsyncResult的AsyncResult属性来访问objectState。
EndXxx方法返回和调用同步方法一样的结果。
优点:
1. 将资源使用率降低,因为如果是同步的话,会发生阻塞而导致在线程池中启动多个线程,而CLR线程占用资源是很多的。
2. 因为减少了线程,从而也减少了上下文的切换。
3. 垃圾回收器的速度加快,因为,每次垃圾回收都会将进程内的所有线程挂起,线程变少,挂起和恢复的就快,垃圾回收器查找线程的栈的速度也会加快。
4. 加快调试速度。
5. 加快程序运行速度。
6. 保持GUI程序的很好的可响应性。
支持APM的主要类:
Stream
Dns
Socket
WebRequest
SerialPort
SqlCommand
所有委托类型。
BeginXxx方法和对应的同步方法的前面的参数是一致的,只是多了2个参数
useCallback和stateObject
useCallback是一个委托,定义如下
public delegate void AsyncCallback(IAsyncResult ar);
在回调方法中可以查询IAsyncResult的AsyncResult属性来访问objectState。
EndXxx方法返回和调用同步方法一样的结果。
相关文章推荐
- .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)
- Asynchronous Programming Model (APM)异步编程模型
- 模式1、APM异步编程模型 Net1.0 [Asynchronous Programming Mode]
- 异步编程:IAsyncResult异步编程模型 (APM)
- 模型/视图编程(Model/View Programming)
- C# 线程知识--异步编程模型(APM)
- Implementing the CLR Asynchronous Programming Model(转)
- [你必须知道的异步编程]——异步编程模型(APM)
- [你必须知道的异步编程]——异步编程模型(APM)
- .NET编程模型体会(Programming Model/Paradigm)
- 发一篇翻译的文章 Implementing the CLR Asynchronous Programming Model
- QT Basic 014 Model/View programming (模型、视图编程)
- .NET编程模型体会(Programming Model/Paradigm)
- 异步编程模型(APM)模式
- Qt 模型视图编程基础 model/view programming
- 【温故知新】c#异步编程模型(APM)--使用委托进行异步编程
- 异步编程:IAsyncResult异步编程模型 (APM)
- HttpWebRequest - Asynchronous Programming Model/Task.Factory.FromAsyc
- [你必须知道的异步编程]——异步编程模型(APM) 推荐
- 异步编程:IAsyncResult异步编程模型 (APM)