码迷,mamicode.com
首页 > 其他好文 > 详细

谈谈异步请求吧

时间:2014-12-09 22:45:02      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

第一种呢,就是“双工模式”了

如果终结点绑定类型是“wsHttpBinding”就要改下啦, 改成“wsDualHttpBinding”, 还有就是 

服务行为别忘了哦: [ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Multiple)]

来来来 (~o ̄▽ ̄)~o 添加个服务先

 1 public void Register(string name, string pass)
 2 {
 3     ICallBackContract callBack = OperationContext.Current.GetCallbackChannel<ICallBackContract>();
 4     if (name.Length < 6 || pass.Length < 6)
 5     {
 6          callBack.Reply("1");
 7     }
 8     else
 9     {
10         callBack.Reply("0");
11     }
12 }        

come on,首先跟普通的服务约定一样,要先定义一个回调模板。不过呢,不需要实现,因为实现是客户端的事

1 namespace ServiceLib.CallBackContract
2 {
3     [ServiceContract]
4     public interface ICallBackContract
5     {
6         [OperationContract]
7         void Reply(String message);
8     }
9 }

然后呢,就是客户端实现这个接口咯

 1 namespace Client.ClientCalcBack
 2 {
 3     class MyCallBack:ICalcServiceCallback
 4     {
 5         public void Reply(string msg)
 6         {
 7             if (msg == "0")
 8                 Console.WriteLine("注册成功");
 9             else if (msg == "1")
10                 Console.WriteLine("注册失败,用户信息不符合要求");
11             else
12                 Console.WriteLine("错误信息:" + msg);
13         }
14     }
15 }

最后就是消费这个服务了

1 InstanceContext callBack = new InstanceContext(new MyCallBack());
2 CalcServiceClient service = new CalcServiceClient(callBack, "WSDualHttpBinding_ICalcService");
3 String name, pass;
4 Console.WriteLine("Please input name:");
5 name = Console.ReadLine();
6 Console.WriteLine("Please input pass:");
7 pass = Console.ReadLine();
8 service.Register(name, pass);

(-?-;) 这个算不算异步呢?

第二种 客户端异步调用

我用的是VS2013社区版,然后呢,它默认生成异步方法(基于任务的操作)

直接使用就可以啦

1 var t = service.WelComeAsync(name);
2 t.ContinueWith(task => Console.WriteLine(task.Result));

参考链接:基于通道什么的

至于另外一种异步和服务端异步处理等想起来再补上吧 (●ˇ∀ˇ●)

谈谈异步请求吧

标签:style   blog   http   io   ar   color   os   使用   sp   

原文地址:http://www.cnblogs.com/hualongbei/p/4154134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!