WCF异步与否由客户端来决定

服务端接口:

// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        string GetData(int value);

[OperationContract]
        string SayHello(string name);
    }

// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“Service1”。
    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }

public string SayHello(string name)
        {
            System.Threading.Thread.Sleep(5000);
            return "hello" + name;
        }
    }

前台生成同步+异步方法

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

private void button1_Click(object sender, EventArgs e)
        {
            WCF.Syn.Serivces.Service1Client _client = new WCF.Syn.Serivces.Service1Client();
            MessageBox.Show(_client.SayHello("peter.peng"));
        }

private void button2_Click(object sender, EventArgs e)
        {
            WCF.Syn.Serivces.Service1Client _client = new WCF.Syn.Serivces.Service1Client();
            _client.SayHelloCompleted+= new EventHandler<WCF.Syn.Serivces.SayHelloCompletedEventArgs>(_client_GetDataCompleted);//第一种方式
            _client.SayHelloAsync("peter");//第一种方式

//_client.BeginSayHello("peter.peng", doCallBack, _client);//第二种方式
        }

void _client_GetDataCompleted(object sender, WCF.Syn.Serivces.SayHelloCompletedEventArgs e)//第一种方式
        {
            MessageBox.Show(e.Result);
        }
        private void doCallBack(IAsyncResult result)
        {
            //string s = ((WCF.Syn.Serivces.Service1Client)result.AsyncState).EndSayHello(result);//第二种方式
            //MessageBox.Show(s);//第二种方式
        }
    }

最新文章

  1. MySql 及 MySql WorkBench使用大全
  2. Busybox下tftp命令使用详解
  3. mysql删除开放用户权限
  4. Java命令行的执行参数
  5. dubbo框架----初探索-配置
  6. linux安装,window上安装centos虚拟机
  7. spring(三)----大概是最简单的面向切面了
  8. Android Fragment类方法
  9. maven自动下载jar包
  10. bat脚本-set(setlocal enabledelayedexpansion) 学习
  11. CDOJ 1269 ZhangYu Speech
  12. 在centOS7.2安装配置zabbix监控
  13. 分针网—IT教育:使用CSS3制作导航条和毛玻璃效果
  14. 最近一些朋友问我,临近快毕业了专业不对口,想转行看到IT行业就业前景不错,但是编程语言众多不了解,不知道哪门语言能够快速入门掌握,短期能让我找到工作
  15. Intellij 设置生成serialVersionUID的方法
  16. 实战DeviceIoControl 之四:获取硬盘的详细信息
  17. 一个Java程序员的2018年展望与2017年总结
  18. 《ServerSuperIO Designer IDE使用教程》-3.Modbus协议,读取多个寄存器,实现多种数据类型解析。发布:v4.2.2版本
  19. java后端服务器读取excel将数据导入数据库
  20. 客户化软件时代的前夜 ZT

热门文章

  1. 哆啦A梦连连看游戏源码完整版
  2. BootStrap中Affix控件的使用方法及如何保持布局的美观
  3. 【C#高级编程(学习与理解)】1.1 C#与.NET的关系
  4. DTcms会员中心添加新页面-会员投稿,获得所有文章并分页
  5. 【C#】 开机启动/取消开机启动
  6. 1027 Colors in Mars (20)
  7. The connection to adb is down
  8. Oracle查看用户所在表空间
  9. dive into python 读笔(3)
  10. oracle 求两个时间点直接的分钟、小时数