微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebService异步调用

 

 // 同步
        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();  // 返回结果         }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐