Programming .NET Components 2nd 学习笔记(十)
2012-09-02 15:33
155 查看
Chapter 7. Asynchronous Calls
当对象的方法被调用时,常常会阻塞客户端,然后在方法执行完毕后返回控制权给客户端。然而,在少数情况下你想要异步调用方法;例如,想要立刻返回控制权给客户端,对象在后台执行方法调用并设法使客户端知道方法执行完毕。这种执行模式叫做异步方法调用,这种行为称作异步调用。异步调用能提高可用性,吞吐量和性能,并扩展你的程序。
在过去,开发人员通常在构件中手动编写自己的异步调用机制。返回机制使对象脱离工作线程去处理客户端请求,并立刻将控制权返回给客户端。当调用完成时对象会发送给客户端一个信号(如果客户端想要知道),并且客户端有办法区分多个方法的完成。这些机制很难开发和测试,并且这会迫使开发人员花费大量时间来重构机制而不是向程序添加商业数据。此外,这些解决方案使客户端与对象耦合,从而不能一致设计与实现。不同的卖家提供不同的解决方案,这使得在客户端需要使用不同的编程模型。这个情况减小了面向构件编程的好处,因为构件的开发人员需要假设客户端使用构件的方式。
.NET异步调用机制贯穿于.NET程序框架和基类,是一个主流机制。.NET异步调用对于构件开发人员来说非常有用,因为自己实现一个健壮的异步执行是一个高难度的任务,要求在设计、实现、测试上做大量工作。通过提供异步调用的支持,.NET可以使你集中精力在问题域上,而不是复杂的异步管道。首先,我会解释异步系统的通用需求。接下来,因为.NET异步调用基于委托,这章将更加深入探讨委托并讨论如何更好地使用.NET异步调用。
当对象的方法被调用时,常常会阻塞客户端,然后在方法执行完毕后返回控制权给客户端。然而,在少数情况下你想要异步调用方法;例如,想要立刻返回控制权给客户端,对象在后台执行方法调用并设法使客户端知道方法执行完毕。这种执行模式叫做异步方法调用,这种行为称作异步调用。异步调用能提高可用性,吞吐量和性能,并扩展你的程序。
在过去,开发人员通常在构件中手动编写自己的异步调用机制。返回机制使对象脱离工作线程去处理客户端请求,并立刻将控制权返回给客户端。当调用完成时对象会发送给客户端一个信号(如果客户端想要知道),并且客户端有办法区分多个方法的完成。这些机制很难开发和测试,并且这会迫使开发人员花费大量时间来重构机制而不是向程序添加商业数据。此外,这些解决方案使客户端与对象耦合,从而不能一致设计与实现。不同的卖家提供不同的解决方案,这使得在客户端需要使用不同的编程模型。这个情况减小了面向构件编程的好处,因为构件的开发人员需要假设客户端使用构件的方式。
.NET异步调用机制贯穿于.NET程序框架和基类,是一个主流机制。.NET异步调用对于构件开发人员来说非常有用,因为自己实现一个健壮的异步执行是一个高难度的任务,要求在设计、实现、测试上做大量工作。通过提供异步调用的支持,.NET可以使你集中精力在问题域上,而不是复杂的异步管道。首先,我会解释异步系统的通用需求。接下来,因为.NET异步调用基于委托,这章将更加深入探讨委托并讨论如何更好地使用.NET异步调用。
相关文章推荐
- Programming .NET Components 2nd 学习笔记(六)
- Programming .NET Components 2nd 学习笔记(五)
- Programming .NET Components 2nd 学习笔记(七)
- Programming .NET Components 2nd 学习笔记(四)
- Programming .NET Components 2nd 学习笔记(九)
- Programming .NET Components 2nd 学习笔记(二)
- Programming .NET Components 2nd 学习笔记(三)
- Programming .NET Components 2nd 学习笔记(八)
- Programming .NET Components 2nd 学习笔记(十一)
- Programming .NET Components 2nd 学习笔记(十二)
- Programming .NET Components 2nd 学习笔记(一)
- Programming Computer Vision with Python (学习笔记九)
- The C++ Programming Language Special 3rd Edition学习笔记-[2]第一章 致读者
- Programming in Objective-C 学习笔记02
- Introduction to 3D Game Programming with DirectX 11学习笔记 4.1 初识Direct3D
- Udacity cs344-Introduction to Parallel Programming学习笔记-如何在VS环境下编译课程习题代码
- Objective-C Programming: The Big Nerd Ranch Guide (2nd Edition) 阅读笔记(Part III)
- Programming Computer Vision with Python (学习笔记十)
- Objective-C Programming: The Big Nerd Ranch Guide (2nd Edition) 阅读笔记(Part IV)
- Programming in Objective-C 学习笔记10——Cocoa, Cocoa Touch and the iOS SDK