日期:2014-05-20  浏览次数:21078 次

wcf异步的问题
伪代码如下:

DuplexChannelFactory<IService> factory = new DuplexChannelFactory<IService>(instanceContext, binding, address);
IService service = factory.CreateChannel();
IAsyncResult iResult1 = service.BeginAddTask(sAcc, sPass, true, true, true, myCallback, service);
//iResult1.AsyncWaitHandle.WaitOne();
IAsyncResult iResult2 = service.BeginSetVerCode(pgsi.sVerCode,null,null);


在执行异步BeginAddTask后 马上再执行异步BeginSetVerCode 没有效果 如果在中间加上iResult1.AsyncWaitHandle.WaitOne();等待iResult1完成 就没有问题

既然是异步调用 有没有办法可以让BeginAddTask不停止或没有执行完的情况下 继续执行BeginSetVerCode?

------解决方案--------------------
是不是服务器端的Concurrency模式没有设置对


参考:
WCF学习之:ConcurrencyMode 并发模型
http://www.cnblogs.com/wanqiming/archive/2009/09/18/1569489.html