在以下操作(服务端)实现中,WCF框架对AsyncState和AsyncCallback做了什么?
IAsyncResult BeginWork(<<Service call params>>, AsyncCallback callback, object state);
Run Code Online (Sandbox Code Playgroud)
我想了解
.NET中有一些用于公开异步方法的设计模式.
这种模式BeginX和EndX方法被称为Asynchronous Programming Model
在此模式中,您始终可以传递这两个额外参数:
1)AsyncCallback callback是操作完成时调用的委托.
2)object state是您要与请求关联的任何对象.
调用者可以提供这两个参数,或者保留它们null,具体取决于用例.
请参阅MSDN: Asynchronous Programming Model (APM)
附录:
在异步WCF服务实现的情况下,WCF本身是"客户端"并填充两个额外参数.
这是工作流程:
1)请求来自客户.
2)WCF构造一个AsyncCallback和一个状态object
3)WCF调用你的BeginX方法并传递参数
4)在你的方法中,你IAsyncResult使用WCF的参数构造一个对象
5)你启动一些后台工作并返回你的IAsyncResult对象
6)WCF等待它AsyncCallback是调用
7)WCF调用您的EndX方法并将响应返回给Web服务客户端.
客户端对此一无所知,可以使用客户端同步或异步调用来调用此Web服务.
| 归档时间: |
|
| 查看次数: |
5568 次 |
| 最近记录: |