WCF异步操作详解:如何在上篇中应用?
- 内容介绍
- 相关推荐
本文共计2272个文字,预计阅读时间需要10分钟。
根据操作所需资源类型,操作可以分为CPU绑定型(CPU-Bound)和I/O绑定型(I/O-Bound)操作。对于CPU绑定型操作,主要利用CPU进行密集计算;而对于I/O绑定型操作,则主要涉及大量的输入输出操作。
按照操作执行所需的资源类型,我们可以将操作分为CPU绑定型(CPU Bound)操作和I/O绑定型(I/O Bound)操作。对于前者,操作的执行主要利用CPU进行密集的计算,而对于后者,大部分的操作处理时间花在I/O操作处理,比如访问数据库、文件系统、网络资源等。对于I/O绑定型操作,我们可以充分利用多线程的机制,让多个操作在自己的线程并发执行,从而提高系统性能和响应能力。服务调用就是典型的I/O绑定型操作,所以多线程在服务调用中具有广泛的应用。在本篇文章中,我们专门来讨论多线程或者是异步操作在WCF中的具体应用。
如果按照异步操作发生的位置,我个人将WCF应用的异步操作分为下面3种变体。
- 异步信道调用:客户端通过绑定创建的信道向服务端发送消息,从而实现了对服务的调用,不管消息通过信道向服务端发送的方式是同步的(采用请求-回复MEP进行消息交换)还是异步的(采用单向MEP进行消息交换),客户端程序都可以通过代理对象异步地调用信道,从而实现异步服务调用;
- 单向(One-way)消息交换:客户端的信道通过单向的消息交换模式向服务端发送消息,消息一旦抵达传输层马上返回,从而达到异步服务调用的效果;
- 异步服务实现:服务端在具体实现服务操作的时候,采用异步调用的方式。
本文共计2272个文字,预计阅读时间需要10分钟。
根据操作所需资源类型,操作可以分为CPU绑定型(CPU-Bound)和I/O绑定型(I/O-Bound)操作。对于CPU绑定型操作,主要利用CPU进行密集计算;而对于I/O绑定型操作,则主要涉及大量的输入输出操作。
按照操作执行所需的资源类型,我们可以将操作分为CPU绑定型(CPU Bound)操作和I/O绑定型(I/O Bound)操作。对于前者,操作的执行主要利用CPU进行密集的计算,而对于后者,大部分的操作处理时间花在I/O操作处理,比如访问数据库、文件系统、网络资源等。对于I/O绑定型操作,我们可以充分利用多线程的机制,让多个操作在自己的线程并发执行,从而提高系统性能和响应能力。服务调用就是典型的I/O绑定型操作,所以多线程在服务调用中具有广泛的应用。在本篇文章中,我们专门来讨论多线程或者是异步操作在WCF中的具体应用。
如果按照异步操作发生的位置,我个人将WCF应用的异步操作分为下面3种变体。
- 异步信道调用:客户端通过绑定创建的信道向服务端发送消息,从而实现了对服务的调用,不管消息通过信道向服务端发送的方式是同步的(采用请求-回复MEP进行消息交换)还是异步的(采用单向MEP进行消息交换),客户端程序都可以通过代理对象异步地调用信道,从而实现异步服务调用;
- 单向(One-way)消息交换:客户端的信道通过单向的消息交换模式向服务端发送消息,消息一旦抵达传输层马上返回,从而达到异步服务调用的效果;
- 异步服务实现:服务端在具体实现服务操作的时候,采用异步调用的方式。

