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