加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 异步WCF中的AsyncCallback和AsyncState是什么?

发布时间:2020-12-16 01:54:01 所属栏目:百科 来源:网络整理
导读:在以下操作(服务端)实现中,WCF框架对AsyncState和AsyncCallback做了什么? IAsyncResult BeginWork(Service call params,AsyncCallback callback,object state); 我想了解 谁填充这些? 他们的目的是什么? 与(2)相关,使用这些的最佳做法是什么? 解决方法 .
在以下操作(服务端)实现中,WCF框架对AsyncState和AsyncCallback做了什么?

IAsyncResult BeginWork(<<Service call params>>,AsyncCallback callback,object state);

我想了解

>谁填充这些?
>他们的目的是什么?
>与(2)相关,使用这些的最佳做法是什么?

解决方法

.NET中有一些用于公开异步方法的设计模式.

这种使用BeginX和EndX方法的模式称为异步编程模型

在此模式中,您始终可以传递这两个额外参数:

1)AsyncCallback回调是在操作完成时调用的委托.

2)对象状态是您要与请求关联的任何对象.

调用者可以提供这两个参数,或者将它们保留为null,具体取决于用例.

请参阅MSDN:Asynchronous Programming Model (APM)

附录:

在异步WCF服务实现的情况下,WCF本身是“客户端”并填充两个额外参数.

这是工作流程:

1)请求来自客户.

2)WCF构造AsyncCallback和状态对象

3)WCF调用您的BeginX方法并传递参数

4)在您的方法中,使用WCF的参数构造IAsyncResult对象

5)您启动一些后台工作并返回您的IAsyncResult对象

6)WCF等待调用其AsyncCallback

7)WCF调用您的EndX方法并将响应返回给Web服务客户端.

客户端对此一无所知,可以使用客户端同步或异步调用来调用此Web服务.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读