wcf多线程和异步操作
按照操作执行所需的资源类型,我们可以将操作分为cpu绑定型操作和I/O绑定型操作,前者主要是利用cpu进行密集运算,后者大部分操作处理时间花在I/O处理上(比如文件系统、网络资源)。对于I/O绑定型的操作,我们可以充分利用多线程机制,让多个操作在各自的线程上并行执行。服务调用就是典型的I/O绑定型操作,所以多线程在服务调用具有广泛应用,按照异步操作发生的位置,可以将wcf应用的异步操作分为下面3中类型1.异步信道调用:客户端通过绑定创建的信道向服务端发送消息,从而实现了对服务的调用。客户端可以通过代理对象异步的调用信道,从而实现异步服务的调用。2.单向消息交换:客户端的信道通过单向的消息交换模式向服务端发送消息,消息一旦抵达传输层马上返回,从而达到异步服务调用的效果。3.异步服务实现:服务端在具体实现服务操作的时候,采用异步调用的方式。
一.异步服务的调用异步服务代理的创建
一般的服务代理继承自ClientBase<TChannel>,默认情况下是不具有异步服务调用的操作。但我们可以通过添加引用的方式创建异步服务代理,并对服务进行异步调用。在添加服务引用的时候,在弹出的服务引用对话框中点击"高级"按钮,会弹出服务引用设置对话框,然后勾选"生成异步操作"即可
对应生成的服务代理类中就会多出几个方法(下面都以计算的服务为例),以下几个方法在接下来都会介绍到的