APM异步编程模型
class C
{
void X()
{
A a = new A();
State state = new State() { A = a };
IAsyncResult result = a.BeginAAA(AReceived, state);
}
void AReceived(IAsyncResult ar)
{
State state = (State)ar.AsyncState;
A a = state.A;
ResultA resA = a.EndAAA(ar);
B b = b.BeginBBB();
state.B = b;
IAsyncResult result = stream.BeginRead(BReceived, state);
}
void BReceived(IAsyncResult ar)
{
State state = (State)ar.AsyncState;
B b = state.B;
ResultB resB = b.EndRead(ar);
DoSomething(resB); // 最终结果
}
}
如果不用通过引发事件来返回结果的方法,
而是通过:
为类 C 实现一对 BeginCCC 和 EndCCC 方法;
或者为类 C 实现返回 Task<T> 的 CCCAsync 方法。
返回最终结果。应该如何实现?
...全文
相关推荐
异步编程:异步编程模型(APM)
“异步编程模型(APM)是.NET框架早期引入的一种异步编程方式,主要基于IAsyncResult接口实现。随着技术进步,后续出现了.NET2.0的基于事件的编程模式和.NET4.X的基于任务的编程模
.NET中的异步编程-EAP/APM使用方法及案例介绍
从.NET 4.5开始,官方推荐了三种异步编程模式:基于事件的异步编程设计模式(EAP,Event-based Asynchronous Pattern)、异步编程模型(APM,Asynchronous
c#异步通信库.zip
异步编程模型 C#的异步编程模型由`async`和`await`关键字驱动,它们允许开发者编写非阻塞代码,提高程序的响应性和效率。
C#_5.0新特性:Async和Await使异步编程更简单.pdf
为了改善程序的响应性,.NET Framework早就提供了异步编程的支持。在C#5.0之前,.NET提供了基于事件和回调的异步编程模型(APM)和基于任务的异步编程模型(TAP)。
MS2012 CCR編程範例
同时,通过比较APM与CCR,可以理解现代异步编程技术如何改进传统模型,以及在什么情况下选择哪种模型更为合适。


