WebService异步调用

来源:互联网 发布:淘宝床品拍摄灯光布置 编辑:程序博客网 时间:2024/05/16 15:35
 

 // 同步
        protected void Button1_Click(object sender, EventArgs e)
        {
            TimeSpan ts;

            DateTime dtStart = DateTime.Now; // 开始时间

            MyServiceDemo.MyTestService myService = new WebServiceExample.MyServiceDemo.MyTestService();

            lblResult.Text = myService.DemoOne(txtParm.Text.Trim());  // 同步调用,直接返回结果

            SynMethod(); // 做其它事

            DateTime dtEnd = DateTime.Now;  // 结束时间

            ts = ((TimeSpan)(dtEnd - dtStart));  // 计算时间差

            txtTime.Text = "花费时间为:" + ts.Seconds.ToString() + "秒!";  // 时间差
        }

        //做其它事
        private void SynMethod()
        {

            Thread.Sleep(10000); // 这里本该是要执行的程序, 假如为10秒,休眠代替
        }


        // 异步调用
        protected void Button2_Click(object sender, EventArgs e)
        {
            TimeSpan ts;

            DateTime dtStart = DateTime.Now; // 开始时间

            MyServiceDemo.MyTestService myService = new WebServiceExample.MyServiceDemo.MyTestService();

            myService.DemoOneCompleted += AsynResults;   // 绑定回调事件,DemoOne是webSwevice发布的方法名

            myService.DemoOneAsync(TextBox1.Text);  // 异步调用

            SynMethod(); // 做其它事次

            DateTime dtEnd = DateTime.Now;  // 结束时间

            ts = ((TimeSpan)(dtEnd - dtStart));// 计算时间差

            TextBox2.Text = "花费时间为:" + ts.Seconds.ToString();  // 时间差
        }

        // 异步调用回调方法,方法名可以自己定义,DemoOneCompletedEventArgs =DemoOne(webSwevice发布的方法名)+CompletedEventArgs
        private void AsynResults(object sender, MyServiceDemo.DemoOneCompletedEventArgs e)
        {
            Label1.Text = e.Result.ToString();  // 返回结果
        }

原创粉丝点击